2011-01-29 3 views
0

PHP/mySQL에서 어떻게 다른 열과 같은 열을 만들 수 있습니까?MySQL의 한 열이 다른 열입니까?

id는 자동 증가이며 xid는 고유해야합니다. SQL에서 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

... 아니, 또한 ID로 내가 필요를 알아 보았 확신 할 수 있습니다 난 당신이 조금 설명 할 필요가 있다고 생각 이 일을 성취하기 위해 무엇을 시도하고 있습니까? – diagonalbatman

+0

Andy가 옳습니다. 서로 항상 같은 테이블에 두 개의 열이 있어야한다고 생각할 이유가 없습니다. – JohnFx

+0

1NF 규칙에 위배됩니까? – Drewdin

답변

4

나는 이유를 이해하지 않는 XID 독특한 가장 좋은 방법은 ID의 자동 증가를 복사하는 것입니다하려면 당신은이 작업을 수행 할 수 있지만, 내 방법은 두 쿼리 및 LAST_INSERT_ID() 사용하는 것입니다 : 당신은 TRIGGER를 사용하여이 작업을 수행 할 수 있습니다

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(); 

을, 그래서 당신은 수동으로 할 필요가 없습니다. 하나 개의 쿼리에서

+1

내가 본 적이 있다면 총알을 찾아야합니다. =) – JohnFx

0

: 그것은 독특한 XID를 넣어 것입니다

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

, 내가

관련 문제