sql >> Database teknologi >  >> RDS >> Mysql

Hvordan tilsidesætter man tilskrivningen af ​​en auto-inkrementering primær nøgle, når man indsætter en værdi i en MySQL-tabel?

Du behøver ikke at deaktivere auto_increment funktion. Når du indsætter en række i tabellen, og du angiver den primære nøgleværdi i rækken, gemmes det ønskede id i databasen. auto_increment bruges kun, når du udelader det primære nøglefelt.

EDIT:Jeg tænkte, at jeg kunne give eksempler 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)

REDIGERING 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. Navne på databasetabel i ental eller flertal?

  2. SQL - fejlkode 1005 med fejlnummer 121

  3. Find og fjern ikke-ASCII-tegn fra en Oracle Varchar2

  4. Ingen Entity Framework-udbyder fundet for 'MySql.Data.MySqlClient' ADO.NET-udbyder