ホームページ >データベース >mysql チュートリアル >mysqlの挿入無視、挿入、置換の違いは何ですか
コマンド | 存在します | 存在しません | 例 |
---|---|---|---|
insert | エラー報告 | insert | names(name, age) の値に挿入(“ Xiao Ming”, 23); |
insertignore | ignore | insert | insertignore を名前に挿入(name, age) 値 ("Xiao Ming", 24); |
replace | replace | insert | replace into names(name 、年齢) 値 ("Xiao Ming"、25); |
テーブル要件: PrimaryKey または一意のインデックス
結果: テーブル ID がインクリメントされます
テーブルの作成
CREATE TABLE names( id INT(10) PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) UNIQUE, age INT(10) )
データの挿入
mysql> insert into names(name, age) values("小明", 24); mysql> insert into names(name, age) values("大红", 24); mysql> insert into names(name, age) values("大壮", 24); mysql> insert into names(name, age) values("秀英", 24); mysql> select * from names; +----+--------+------+ | id | name | age | +----+--------+------+ | 1 | 小明 | 24 | | 2 | 大红 | 24 | | 3 | 大壮 | 24 | | 4 | 秀英 | 24 | +----+--------+------+
挿入はすでに存在します。IDはインクリメントされます。ただし、挿入が失敗した場合は、エラーが報告されます。
mysql> insert into names(name, age) values("小明", 23); ERROR 1062 (23000): Duplicate entry '小明' for key 'name'
すでに置換されています。元のレコードを削除し、新しいレコードを追加します。
mysql> replace into names(name, age) values("小明", 23); Query OK, 2 rows affected (0.00 sec) mysql> select * from names; +----+--------+------+ | id | name | age | +----+--------+------+ | 2 | 大红 | 24 | | 3 | 大壮 | 24 | | 4 | 秀英 | 24 | | 6 | 小明 | 23 | +----+--------+------+
置換はありません。新しいレコード
mysql> replace into names(name, age) values("大名", 23); Query OK, 1 row affected (0.00 sec) mysql> select * from names; +----+--------+------+ | id | name | age | +----+--------+------+ | 2 | 大红 | 24 | | 3 | 大壮 | 24 | | 4 | 秀英 | 24 | | 6 | 小明 | 23 | | 7 | 大名 | 23 | +----+--------+------+
挿入はすでに存在します。新しく挿入されたレコードは無視します。IDはインクリメントされ、エラーは報告されません
mysql> insert ignore into names(name, age) values("大壮", 25); Query OK, 0 rows affected, 1 warning (0.00 sec)
挿入は行われます。存在しないため、新しいレコードを追加します
mysql> insert ignore into names(name, age) values("壮壮", 25); Query OK, 1 row affected (0.01 sec) mysql> select * from names; +----+--------+------+ | id | name | age | +----+--------+------+ | 2 | 大红 | 24 | | 3 | 大壮 | 24 | | 4 | 秀英 | 24 | | 6 | 小明 | 23 | | 7 | 大名 | 23 | | 10 | 壮壮 | 25 | +----+--------+------+
以上がmysqlの挿入無視、挿入、置換の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。