2011-01-29 2 views
0

Как в php/mySQL я могу сделать столбец равным другому столбцу?MySQL один столбец равен другому?

id является автоматическим приращением, xid должен быть уникальным. Могу ли я сделать xid = id в SQL? (Причина этого заключается в том, чтобы войти изменения, но я объясню больше, если необходимо)

Чтобы сделать XID уникального лучшим способом скопировать автоматическое приращение идентификатора

+----+-----+----------+----------------+------+---------+ 
| 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

+0

Энди прав. Нет причин, по которым я могу думать, что вам нужно иметь два столбца в таблице, которые всегда равны друг другу. – JohnFx

+0

ли это противоречит правилам 1NF? – Drewdin

ответ

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

Там, где я видел его, нужно искать пулю. знак равно – JohnFx

0

В одном запросе:

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

это поставит уникальный XID, может быть сделано с идентификатором и я не совсем уверен, что я undestand необходимость ...

Смежные вопросы