ホームページ >データベース >mysql チュートリアル >MySQL で自動インクリメントされる主キーにプレフィックスを付けるにはどうすればよいですか?

MySQL で自動インクリメントされる主キーにプレフィックスを付けるにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-14 00:45:17872ブラウズ

How Can I Prefix Auto-Incrementing Primary Keys in MySQL?

MySQL での自動インクリメント主キーの接頭辞

データベース管理者は、自動インクリメント主キーの接頭辞を付けたい状況に遭遇することがあります。主キーを特定の値で増分します。このガイドでは、別個のシーケンス テーブルとトリガーを使用したソリューションを検討します。

シーケンス テーブルの作成

まず、シーケンス値を生成するテーブルを作成します。 :

CREATE TABLE table1_seq (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
);

メインの作成Table

次に、VARCHAR 型を使用し、デフォルト値 '0' を指定して主キー列を持つメイン テーブルを作成します。

CREATE TABLE table1 (
  id VARCHAR(7) NOT NULL PRIMARY KEY DEFAULT '0',
  name VARCHAR(30)
);

接頭辞のトリガー主キー

主キーの接頭辞付きの値を設定するには、次のトリガーを作成します。メイン テーブルに対する各挿入操作の前に起動されます:

DELIMITER $$
CREATE TRIGGER tg_table1_insert
BEFORE INSERT ON table1
FOR EACH ROW
BEGIN
  INSERT INTO table1_seq VALUES (NULL);
  SET NEW.id = CONCAT('LHPL', LPAD(LAST_INSERT_ID(), 3, '0'));
END$$
DELIMITER ;

メイン テーブルへのデータの挿入

これで、パラメータを指定せずにメイン テーブルにデータを挿入できるようになりました。主キーの値。トリガーは自動的に ID を生成し、プレフィックスを付けます:

INSERT INTO Table1 (name) 
VALUES ('Jhon'), ('Mark');

Output

データを挿入すると、テーブルにはプレフィックス付きの主キーを持つ次のレコードが表示されます。

|      ID | NAME |
------------------
| LHPL001 | Jhon |
| LHPL002 | Mark |

SQLFiddleデモ

実際的なデモについては、ここで SQLFiddle デモを参照できます: [リンク]

以上がMySQL で自動インクリメントされる主キーにプレフィックスを付けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。