2011-01-29 144 views
0

如何在php/mySQL中創建一列作爲另一列?MySQL的一列等於另一列?

id是自動增量,xid應該是唯一的。我可以在SQL中創建xid = id嗎? (這樣做的原因是登錄的變化,但如果需要的話我會解釋更多)

爲了使XID唯一最好的方法是複製ID的自動遞增

+----+-----+----------+----------------+------+---------+ 
| id | xid | title | body   | page | visible | 
+----+-----+----------+----------------+------+---------+ 
| 1 | 1 | my title | my body  | NULL |  1 | 
| 2 | 2 | my title | my body edited | 1 |  0 | 
+----+-----+----------+----------------+------+---------+ 

$queryX = "INSERT INTO table (xid, title, body, page, visible) 
VALUES (, 'Plays', 'it's playing', 'book page', 1)"; 
+2

我認爲你需要稍微解釋一下更多的是你要做什麼? – diagonalbatman 2011-01-29 22:55:21

+0

安迪是對的。我沒有理由想到你需要在一張桌子上有兩列總是相等的列。 – JohnFx 2011-01-29 22:57:13

回答

4

我不明白爲什麼要做到這一點,但我的方法是使用兩個查詢和LAST_INSERT_ID()

INSERT INTO table (title, body, page, visible) 
VALUES ('Plays', 'it''s playing', 'book page', 1); 
UPDATE table SET xid = id WHERE id = LAST_INSERT_ID(); 

您可能要做到這一點使用一個TRIGGER,所以你不必做手工。

0

在一個查詢:

 
INSERT INTO table (xid, title, body, page, visible) VALUES 
(SELECT MAX(xid) + 1, ....) 

它將把獨特的XID,可以用ID來完成同樣的,我不太清楚我的已瞭解需要...