2010-07-31 18 views
46
Bunu alabilir

zaten mevcut bir alanın ardından Alan Ekle, ancak çalışmıyor:MySQL Alter Tablo önce ya

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

bunu takdir!

+4

hata nedir? –

cevap

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

bende sende "sütununu ADD" ve "sonra" değil "ÖNCE" kullanmak gerekir inanıyoruz. kaçan karmaşa burada yani heredoc kullanarak aynı kod önlemek için

$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

Yep, AFTER veya FIRST, ÖNCE değil. +1 – dwich

+0

Bunu yapan harika. Teşekkür ederim! – atwellpub

+1

no problem yardımcı olmaktan mutluluk duyarım – Chris

0

: durumunda

Eğer bir tablonun başında sütun yerleştirin "İLK" deyimini kullanmak istiyorum kolay, okumak ve değiştirmek, kopyalama/yapıştırma bazıları için kullanışlı umut:

örneği "sonra":

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

"Birinci" örnek:

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