2014-01-24 3 views
25

Я создал таблицу с 85 столбцами, но я пропустил один столбец. Пропущенная колонна должна быть 57-й строкой (место столбца). Я не хочу, чтобы бросить эту таблицу и не хотите, чтобы создать его снова, мне нужно, чтобы изменить эту таблицу, и я должен добавить, что столбец в 57-й строкеКак добавить столбцы в определенную позицию в существующей таблице

ALTER table table_name 
Add column column_name57 integer 

Как вызвать этот столбец в 57-м строка

+3

Вы используете MySQL или Postgres? Postgres может только поместить новый столбец в конец - это не проблема, потому что порядок столбцов в таблице абсолютно не имеет значения. Нет необходимости помещать столбец в определенную позицию. Если вам нужны столбцы в определенном порядке, просто поместите их в выбранный в этом порядке. –

+0

Порядок столбцов абсолютно не важен с точки зрения сервера БД. Но важно писать базы данных кода и структуры, чтобы все было легко понять людям. Иногда, для ясности, хорошо иметь колонки в удобном для человека порядке. – osullic

ответ

35

ALTER TABLE по умолчанию добавляет новые столбцы в конце таблицы. Используйте AFTER директиву, чтобы поместить его в определенном положении в таблице:

ALTER table table_name 
    Add column column_name57 integer AFTER column_name56 

Начиная с MySQL документ

Чтобы добавить столбец в определенной позиции в строке таблицы, используйте FIRST или AFTERcol_name. По умолчанию добавляется последний столбец. Вы также можете использовать FIRST и AFTER в CHANGE или MODIFY операции по изменению порядка столбцов в таблице.

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

Я гугле для этого для PostgreSQL, но it seems to be impossible.

2

Попробуйте

ALTER TABLE tablename ADD column_name57 INT AFTER column_name56 

See here

1
ALTER TABLE table_name ADD COLUMN column_name57 INTEGER AFTER column_name56 
0
ALTER TABLE table_name ADD COLUMN column_name integer 
0

если вы говорите ADD COLUMN column_name тогда он будет бросать ошибки

и есть попробовать

ALTER TABLE temp_name ADD My_Coumn INT(1) NOT NULL DEFAULT 1 

помните, если таблица уже имеет несколько записи и у вас, чтобы создать новый столбец, то либо у вас, чтобы сделать его обнуляемым или и должно определить значение по умолчанию, как я сделал в моем запросе

+0

'alter table add column' ** является ** действительным для Postgres, и вопрос по-прежнему помечен как' postgresql'. –

+0

hmm правый ..на самом деле я не заметил тег postgres .. –

-1

Я попытался изменить таблицу, как так:

table_name add column column_name after column column_name; 

Первый column_name новое имя столбца, второй column_name является существующий столбец, где вы собираетесь вставить после.

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