When insert failure

[[email protected]]> CREATE TABLE `t` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`c1` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;

# Inserted first, no problem
[[email protected]]> INSERT INTO T SELECT 0, RAND () * 1024;
[[email protected]]> SELECT LAST_INSERT_ID ();
+ -------- + ----------
| LAST_INSERT_ID () |
+ ------------------ +
| 1 |
+ ---------- -------- +

# The second insert, there is no problem
[[email protected]]> INSERT INTO T SELECT 0, RAND () * 1024;
[[email protected]]> SELECT LAST_INSERT_ID ();
+ ------- + -----------
| LAST_INSERT_ID () |
+ ------------------ +
| 2 |
+ --------- --------- +

# Third insert, a deliberately duplicate primary keys, this is not right
[[email protected]]> INSERT INTO T values (0, RAND () * 1024), (. 3, RAND () * 1024);
ERROR 1062 (23000): Duplicate entry '. 3' Key for 'a PRIMARY'
[[email protected]]> SELECT LAST_INSERT_ID (http://www.amjmh.com/v/BIBRGZ_558768/);
+ ------- + -----------
| LAST_INSERT_ID () |
+ ------------------ +
| 3 |
+ --------- --------- +

# Actually only two records in the table
[[email protected]]> SELECT * from T;
+ ----- + ---- +
| ID | C1 |
+ ----- + ---- +
| 1 | 784 |
| 2 | 574 |
+ ----- + ---- +
2 rows in the SET (0.00 sec)

Guess you like

Origin www.cnblogs.com/ly570/p/11448343.html