記事ディレクトリ
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 チャンネルにぜひご参加ください。
気に入ったらシェアして「いいね!」してください!あなたのシェアと「いいね!」が私たちの継続的なモチベーションです。