#指令 | 已存在 | 不存在 | ##範例|
---|---|---|---|
錯誤 | #插入 | insert into names(name, age) values(“小明”, 23); | |
#忽略 | 插入 | insert ignore into names(name, age) values (「小明」, 24); | |
取代 | 插入 | replace into names(name, age) 值(「小明」, 25); |
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 | +----+--------+------+insert插入已存在, id會自增,但是插入不成功,會報錯
mysql> insert into names(name, age) values("小明", 23); ERROR 1062 (23000): Duplicate entry '小明' for key 'name'replace已存在替換,刪除原來的記錄,新增新的記錄
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 | +----+--------+------+insert ignore插入已存在,忽略新插入的記錄,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中insert ignore、insert和replace的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!