MySQL はどのようにシーケンスを作成しますか? MySQL データベース作成自動インクリメント シーケンス ステートメント

MySQLシーケンスを作成するには?MySQL データベース自動インクリメント シーケンス ステートメントを作成する

MySQL シーケンスの使用

MySQL シーケンスは整数のセットです: 1、2、3、...。データ テーブルには XNUMX つのフィールドの自動インクリメント主キーしか持てないため、他のフィールドの自動インクリメントを実現したい場合は、MySQL シーケンスを使用して成し遂げる。

この章では、MySQL シーケンスの使用方法について説明します。


AUTO_INCREMENT を使用する

MySQL でシーケンスを使用する最も簡単な方法は、MySQL AUTO_INCREMENT を使用して列を定義することです。

インスタンス

次の例では、データ テーブル Insect が作成されます。ここでは、自動成長の値が指定されていません。

mysql > CREATE TABLE昆虫
     - > - > id INT UNSIGNED NOT NULL AUTO_INCREMENT - > PRIMARY KEY id ),- > name VARCHAR 30 NOT NULL #昆虫类型- > 日期DATE NOT NULL #收集日期- > origin VARCHAR 30 NOT NULL #where collected ); 查询OK 0 行受影响0.02 
mysql > 
    
    
     
     
    

 INSERT INTO insects id name date origin VALUES
     - > NULL 'housefly' '2001-09-10' 'kitchen' ),- > NULL 'millipede' '2001-09-10 ' '车道' ),- > NULL 'grasshopper' '2001-09-10' 'front yard' ); 查询OK  
     
     
 记录3 重复0 警告0 
mysql > 选择* 从昆虫ORDER BY ID ; + ---- + ------------- + ------------ + ------------ + | id | 名字         | 日期        | 起源      | + ---- + ------------- + ------------ + ------------ + | 1 | 家蝇     | 2001 - 09 - 10 | 厨房     | | 2 | 千足虫   
       



     
   | 2001 - 09 - 10 | 车道    | | 3 | 蚱蜢| 2001 - 09 - 10 | 前院| + ---- + ------------- + ------------ + ------------ + 3 0.00   
     

  

AUTO_INCREMENT 値を取得する

MySQL クライアントでは、SQL で LAST_INSERT_ID() 関数を使用して、テーブルに挿入された最後の自動インクリメント カラムの値を取得できます。

テーブルに挿入された最後の自動インクリメント列の値を取得するために、対応する関数も PHP または PERL スクリプトで提供されます。

PERL インスタンス

mysql_insertid プロパティを使用して、AUTO_INCREMENT の値を取得します。例は次のとおりです。

$ dbh - > do “INSERT INTO insect(name,date,origin) 
VALUES('moth','2001-09-14','windowsill')“ ); my $ seq = $ dbh - > { mysql_insertid };

PHP の例

PHP は、mysql_insert_id() 関数を通じて、実行された insert SQL ステートメントの AUTO_INCREMENT カラムの値を取得します。

mysql_query “INSERT INTO昆虫(名字,日期,起源)
VALUES('moth','2001-09-14','windowsill')“ $ conn_id ); 
$ seq = mysql_insert_id $ conn_id );

リセットシーケンス

データ テーブル内の複数のレコードを削除し、残りのデータの AUTO_INCREMENT 列を再配置する場合は、自動インクリメント列を削除してから再度追加することで実行できます。ただし、この操作は非常に慎重に行う必要があります。削除と同時に新しいレコードが追加され、データが混乱する可能性があります。

mysql > ALTER TABLE昆虫DROP ID ; 
mysql > ALTER TABLE昆虫
     - > ADD ID INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST - > ADD PRIMARY KEY id );
    

シーケンスの開始値を設定します

一般に、シーケンスの開始値は 1 ですが、開始値 100 を指定する必要がある場合は、次のステートメントで指定できます。

mysql > CREATE TABLE昆虫
     - > - > id INT UNSIGNED NOT NULL AUTO_INCREMENT - > PRIMARY KEY id ),- > name VARCHAR 30 NOT NULL - > date DATE NOT NULL - > origin VARCHAR 30 NOT NULL
 engine = innodb auto_increment = 100 charset = utf8 ; 
    
    
     
    
    

または、テーブルが正常に作成された後に次のステートメントを使用することもできます。

mysql > ALTER TABLE t AUTO_INCREMENT = 100 ; 

Hope Chen Weiliang ブログ ( https://www.chenweiliang.com/ ) 共有 "MySQL はどのようにシーケンスを作成しますか? 自己インクリメント シーケンス ステートメントを作成するための MySQL データベース」を参考にしてください。

この記事のリンクを共有することを歓迎します。https://www.chenweiliang.com/cwl-498.html

さらに多くの隠されたトリックのロックを解除するには、Telegram チャンネルにぜひご参加ください。

気に入ったらシェアして「いいね!」してください!あなたのシェアと「いいね!」が私たちの継続的なモチベーションです。

 

发表评论

バグのあるボックスの内容は公開されません。 必須アイテム * 标注

上へスクロール