MySQL оператор для добавления нескольких столбцов, независимо от того, существуют они или нет - PullRequest
1 голос
/ 15 октября 2011

Я пытаюсь написать заявление об обновлении mysql для программы. В настоящее время это то, что у меня есть для оценки, но я не знаю, как добавить несколько столбцов для обновления.

Этот код в настоящее время добавляет столбец, есть он или нет.


/*delimiter '//'
CREATE PROCEDURE addcol() BEGIN
IF NOT EXISTS(
SELECT * FROM information_schema.COLUMNS
WHERE COLUMN_NAME=`top_status` AND TABLE_NAME='categories'
)
THEN
ALTER TABLE `categories`
ADD COLUMN `top_status` tinyint(1) NOT NULL default '1';
END IF;
END;
delimiter ';'
CALL addcol();
DROP PROCEDURE addcol;*/

Может ли кто-нибудь дать мне правильное утверждение, чтобы заставить что-то подобное работать ... т.е. WHERE COLUMN_NAME = столбец1, столбец2 и т. Д.

Я перепробовал все виды вариаций, и все они возвращают ошибку в phpmyadmin, кроме приведенного выше.

Ответы [ 2 ]

6 голосов
/ 06 марта 2013

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

ALTER TABLE TableName
ADD (column1 col_definition,
column2 col_definition,
column3 col_definition,
....      ......
....      ......
columnN col_definition);
0 голосов
/ 15 октября 2011

Конечно, вы хотите индивидуально проверить наличие новых столбцов и добавить каждый отдельно, если он еще не существует?

Если вы хотите, чтобы запрос INFORMATION_SCHEMA проверял наличие любого столбцов column1, column2 и т. Д., Вы можете использовать оператор IN. Если вы хотите проверить, существуют ли они все , вы можете использовать IN и вместо проверки, является ли результирующий набор пустым, выберите COUNT(*) и проверьте, является ли возвращаемое число ожидаемым числом (число участвующих столбцов).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...