Как вставить столбцы в определенную позицию в существующей таблице?
Я создал таблицу с 85 столбцами, но пропустил один столбец. Пропущенный столбец должен быть 57-м. Я не хочу бросать эту таблицу и создавать ее снова. Я смотрю, чтобы отредактировать эту таблицу и добавить столбец в 57-й индекс.
Я попытался следующий запрос, но он добавил столбец в конце таблицы.
ALTER table table_name
Add column column_name57 integer
Как я могу вставить столбцы в определенную позицию?
Ответы
Ответ 1
ALTER TABLE
по умолчанию добавляет новые столбцы в конце таблицы. Используйте директиву AFTER
, чтобы поместить ее в определенную позицию в таблице:
ALTER table table_name
Add column column_name57 integer AFTER column_name56
Из mysql doc
Чтобы добавить столбец в определенную позицию в строке таблицы, используйте FIRST
или AFTER
col_name
. По умолчанию добавляется последний столбец. Вы также можете использовать операции FIRST
и AFTER
в CHANGE
или MODIFY
для изменения порядка столбцов в таблице.
http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
Я искал это для PostgreSQL, но кажется невозможным.
Ответ 2
Попробуйте это
ALTER TABLE tablename ADD column_name57 INT AFTER column_name56
См. здесь
Ответ 3
ALTER TABLE table_name ADD COLUMN column_name57 INTEGER AFTER column_name56
Ответ 4
ALTER TABLE table_name ADD COLUMN column_name integer
Ответ 5
если вы говорите ADD COLUMN column_name, тогда он будет вызывать ошибку
u нужно попробовать
ALTER TABLE temp_name ADD My_Coumn INT(1) NOT NULL DEFAULT 1
помните, что в таблице уже записано несколько записей, и вам нужно создать новый столбец, либо либо вы должны сделать его нулевым, либо у вас нужно определить значение по умолчанию, как в моем запросе
Ответ 6
SET
@column_name =(
SELECT COLUMN_NAME
FROM
information_schema.columns
WHERE
table_schema = 'database_name' AND TABLE_NAME = 'table_name' AND ordinal_position = 56
);
SET
@query = CONCAT(
'ALTER TABLE 'table_name' ADD 'new_column_name' int(5) AFTER ',
@column_name
);
PREPARE
stmt
FROM
@query;
EXECUTE
stmt;
DEALLOCATE
stmt;
Ответ 7
Я попытался изменить таблицу следующим образом:
table_name add column column_name after column column_name;
Первый column_name
- это новое имя столбца, второй column_name
- это существующий столбец, в который вы планируете вставлять его после.