如何在php / 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)";
答案 0 :(得分: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
执行此操作,因此您无需手动执行此操作。
答案 1 :(得分:0)
在一个查询中:
INSERT INTO table (xid, title, body, page, visible) VALUES ( SELECT MAX(xid) + 1, .... )
它会放置独特的xid,也可以用id来完成,我不太确定我是不是需要...