我有一個包含許多用戶的表。在那張表中,我有一個名爲user_id(INT)的列,我想爲每個人單獨增加。 USER_ID必須從1開始問題與MySql INSERT MAX()+ 1
我已經準備了一個簡單的例子:
Showing all names
+--------------+-----------------------+
| user_id | name |
+--------------+-----------------------+
| 1 | Bob |
| 1 | Marry |
| 2 | Bob |
| 1 | John |
| 3 | Bob |
| 2 | Marry |
+--------------+-----------------------+
Showing only where name = Bob
+--------------+-----------------------+
| user_id | name |
+--------------+-----------------------+
| 1 | Bob |
| 2 | Bob |
| 3 | Bob |
+--------------+-----------------------+
下面的查詢將做到這一點,但如果「鮑勃」表中已經存在,它只會工作...
INSERT INTO users(user_id, name) SELECT(SELECT MAX(user_id)+1 from users where
name='Bob'), 'Bob';
如果Bob不存在(第一項)user_id設置爲0(零)。這就是問題。我需要user_id從1開始而不是0.
This Works!THANK YOU! – Chad 2009-10-19 08:58:53
是的,查詢工作,但請不要忽略第二部分。:)或者如果你決定忽略它,至少在'(name,user_id)'上創建一個唯一索引,這樣否則會產生重複的查詢將失敗。 – 2009-10-19 11:54:46
t實際上是我的下一個問題,它在這裏:http://stackoverflow.com/questions/1590648/mysql-innodb-locking-only-the-affected-rows – Chad 2009-10-19 19:41:22