在正在创建ID的同一语句中使用auto_incremented ID

时间:2013-12-03 17:31:26

标签: mysql sql

我不确定如何正确制定标题。我会尝试详细说明,并在此处理解。

我有一个带有auto_incremented ID(主键)的表。在同一张表中,我有一个guid-column。这个guid将是一个URL。因此guid通常类似于http://www.example.com/path/path/ID

我的问题是: 因为在INSERT上自动生成ID,并且我没有手动分配它,所以我事先不知道ID将是什么。如果我依赖于ID,那么如何在insert-statement中分配guid-value?

我目前的解决方案是用两个语句来做:

INSERT INTO table (ID, guid) 
VALUES (null, null);

我现在有一行看起来像这样:

-------------
| ID | GUID |
-------------
| 1  | null |
-------------

然后我可以在另一个语句中使用这样的语句更新此行;

UPDATE  table SET  guid = ID WHERE ID = 1;

(可能是语法错误,但你明白了)

有没有办法在“一次性”中这样做?我可以根据auto_incremented ID来设置GUID吗?所以它会是这样的

INSERT INTO table (ID, guid) 
VALUES (null, ID);

我希望我的问题是可以理解的!我会澄清它是否仍然不清楚。我不知道有什么更好的方法来解释我的问题。

1 个答案:

答案 0 :(得分:1)

如果PK是自动生成的,则在插入查询中不需要它。

insert into table
(guid)
values
(your guid)

你当然必须自己生成guid,并且有很多方法可以做到这一点。