SQL自动创建下一个数字编号

时间:2016-01-16 16:51:55

标签: mysql sql

我想将数据插入到我的表中,但希望每个条目都有一个尚未获取的ID。

例如:

INSERT INTO Table_lol (id, name, email, phone, address)
VALUES (1, bob, boblol@example.com, 1111111, 123 lollane);

我可以添加类似WHERE NOT EXISTS的内容,但这只会阻止id被覆盖。我不希望用户必须创建一个id,我希望它生成下一个号码,这样用户就不会搞砸任何东西。

这可能吗?谢谢!

3 个答案:

答案 0 :(得分:2)

创建表时使用auto_increment 例如:

CREATE TABLE animals ( 
     id MEDIUMINT NOT NULL AUTO_INCREMENT, 
     name CHAR(30) NOT NULL, 
     PRIMARY KEY (id) ); 

然后不要为id写下你想要的值 例如:

INSERT INTO Table_lol (name, email, phone, address)
VALUES (bob, boblol@example.com, 1111111, 123 lollane);

答案 1 :(得分:0)

如果这是一个新表,那么我将创建一个带有标识列的id字段,该列将自动管理字段中的id。

如果这是现有表格,请尝试使用:

INSERT INTO Table_lol(id, name, email, phone, address)
    SELECT MAX(id) + 1, 'bob', 'boblol@example.com', 1111111, 123 lollane
    FROM Table_lol;

答案 2 :(得分:0)

如果您已经制作了表格,并且无法使用其他答案/评论中提到的自动增量,则可以选择id列的最大值并为其添加1。

$max = SELECT MAX( id ) FROM Table_lol;
INSERT INTO Table_lol( customer_id, firstname, surname )
VALUES ($max+1 ,bob, boblol@example.com, 1111111, 123 lollane)