sql >> Databasteknik >  >> RDS >> Mysql

Hur åsidosätter man tillskrivningen av en autoinkrementerande primärnyckel när man infogar ett värde i en MySQL-tabell?

Du behöver inte inaktivera auto_increment funktion. När du infogar en rad i tabellen och du anger det primära nyckelvärdet i raden, lagras det ID du vill ha i databasen. auto_increment används endast när du utelämnar det primära nyckelfältet.

EDIT:Jag tänkte att jag skulle kunna ge exempel på det:

mysql> describe test;
+-------+------------------+------+-----+---------+----------------+
| Field | Type             | Null | Key | Default | Extra          |
+-------+------------------+------+-----+---------+----------------+
| id    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| value | varchar(45)      | NO   |     | NULL    |                |
+-------+------------------+------+-----+---------+----------------+
2 rows in set (0.02 sec)

mysql> insert into test (value) values ('row 1');
Query OK, 1 row affected (0.06 sec)

mysql> select * from test;
+----+-------+
| id | value |
+----+-------+
|  1 | row 1 |
+----+-------+
1 row in set (0.00 sec)

mysql> insert into test values (15, 'row 2');
Query OK, 1 row affected (0.03 sec)

mysql> select * from test;
+----+-------+
| id | value |
+----+-------+
|  1 | row 1 |
| 15 | row 2 |
+----+-------+
2 rows in set (0.00 sec)

REDIGERA 2

mysql> insert into test (id, value) values (3, 'row 3');
Query OK, 1 row affected (0.00 sec)

mysql> select * from test;
+----+-------+
| id | value |
+----+-------+
|  1 | row 1 |
| 15 | row 2 |
|  3 | row 3 |
+----+-------+
3 rows in set (0.00 sec)


  1. Kan inte validera, med novalidate-alternativet

  2. Få ut det mesta av dina PostgreSQL-index

  3. Hur returnerar man flera värden i en kolumn (T-SQL)?

  4. Visa alltid decimaler i SQL?