2010-07-31 3 views
46
내가 이것을 가지고

이미 필드 후 필드 추가,하지만 작동하지 않습니다MySQL의 테이블 변경 전이나

$query = "ALTER TABLE `".$table_prefix."posts_to_bookmark` 
      ADD `ping_status` INT(1) NOT NULL BEFORE `onlywire_status`"; 

을 나는 그것을 감사!

+4

오류가 무엇입니까? –

답변

115
$query = "ALTER TABLE `".$table_prefix."posts_to_bookmark` ADD COLUMN `ping_status` INT(1) NOT NULL AFTER `<TABLE COLUMN BEFORE THIS COLUMN>`"; 

나는 "이전에"가 아니라 "후속"을 사용하고 "열을 추가"해야한다고 생각합니다. 이스케이프 엉망이 여기가 그래서 heredocs를 사용하여 동일한 코드의 방지하려면

$query = "ALTER TABLE `".$table_prefix."posts_to_bookmark` ADD COLUMN `ping_status` INT(1) NOT NULL FIRST"; 

http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

+15

예, AFTER 또는 FIRST, BEFORE가 아닙니다. +1 – dwich

+0

환상적입니다. 고맙습니다! – atwellpub

+1

도와 주셔서 기쁘게도 아무 문제가 없습니다 – Chris

0

: 경우

당신은 테이블의 시작 부분에 열을 배치은 "FIRST"문을 사용하려면 쉽게 읽고, 수정, 복사/붙여 넣기가 일부 유용 희망 :

예 "후"

$query = <<<EOT 
ALTER TABLE `{$table_prefix}posts_to_bookmark` 
ADD COLUMN `ping_status` INT(1) NOT NULL 
AFTER `<TABLE COLUMN BEFORE THIS COLUMN>`; 
EOT; 

"첫 번째"예 :

$query = <<<EOT 
ALTER TABLE `{$table_prefix}posts_to_bookmark` 
ADD COLUMN `ping_status` INT(1) NOT NULL 
FIRST 
EOT;