Установите для всех столбцов таблицы MySQL определенное значение - PullRequest
2 голосов
/ 09 марта 2011

Есть ли способ обновить все столбцы таблицы mysql для конкретной записи за один раз до определенного значения.

Например, У меня есть таблица, которая имеет около 70 столбцов, и они по умолчанию установлены в 0 во время создания таблицы, когда я добавляю новую запись через PHPmyadmin, просто заполнив одно или два значения и отправив его, все остальные поля установить в 0, но я хочу установить все поля в 1 много раз, поэтому мне нужно установить все столбцы в 1 индивидуально через PHPmyadmin

Для ускорения процесса и Я пытался

UPDATE tablename SET * = '1' WHERE id = '2', но это не работает.

Если кто-нибудь может предложить решение по аналогичным направлениям, было бы замечательно.

EDIT:


Есть ли способ без указания всех 70 столбцов в операторе SQL? это то, что я ищу. Я знаю, как обновить обычно указав столбцы в операторе SQL. Спасибо.

Ответы [ 2 ]

3 голосов
/ 09 марта 2011

Если вы ищете способ обновить все 70 столбцов до единого значения с помощью короткого простого оператора, то я рекомендую вам написать хранимую процедуру для обновления.Таким образом, вам нужно всего лишь один раз записать полный синтаксис обновления, и вы можете использовать его снова и снова, вызывая хранимую процедуру.

CREATE PROCEDURE update_all_columns (p_new_value SMALLINT, p_id INT) ...

CALL update_all_columns(1,2);

Еще один прием - использовать таблицу information_schema.columns для генерацииоператор обновления, что делает его менее утомительным для кодирования хранимой процедуры.

Примерно так:

SELECT concat('UPDATE ',
table_name,
' SET ',
group_concat(column_name separator ' = p_new_value, '),
' = p_new_value',
' WHERE id = p_id;') as sql_stmt
FROM information_schema.columns 
WHERE table_schema = 'your_schema' 
AND table_name = 'tablename'
AND column_name != 'id'
2 голосов
/ 09 марта 2011

Вы должны назвать каждый столбец в операторе обновления.

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