У меня есть запрос, который вставляет с помощью выбора:
INSERT INTO courses (name, location, gid)
SELECT name, location, gid
FROM courses
WHERE cid = $cid
Можно ли только выбрать «имя, местоположение» для вставки и установить gid для чего-то еще в запросе?
mysql
sql
insert-select
рукав моря
источник
источник
OUTPUT
предложение , которое позволяет вам помещать все, что вы вставили, в другую таблицу. Я не думаю, что MySQL имеет эквивалент. Вы можете создать временную таблицу , выбрать эту таблицу, затем заполнить ееcourses
, а затем использовать временную таблицу для всего, что вам нужно.Да, это так. Ты можешь написать :
или вы можете получить значения из другого объединения выбора ...
источник
Правильный синтаксис: выбранное написание было неверным
источник
Конечно, что вы хотите использовать для GID? статическое значение, PHP var, ...
Статическое значение 1234 может быть таким:
источник
Я думаю, что ваше заявление INSERT неверно, см правильный синтаксис: http://dev.mysql.com/doc/refman/5.1/en/insert.html
редактировать: как уже указал Андрей ...
источник
Конечно вы можете.
Однако следует отметить одну вещь:
INSERT INTO SELECT
оператор копирует данные из одной таблицы и вставляет их в другую таблицу И требует соответствия типов данных в исходной и целевой таблицах. Если типы данных из заданных столбцов таблицы не совпадают (т.е. пытаются вставитьVARCHAR
вINT
илиTINYINT
вINT
), сервер MySQL выдаетSQL Error (1366)
.Так что будьте осторожны.
Вот синтаксис команды:
Примечание: существует способ обойти проблему вставки разных типов столбцов, используя приведение в вашем
SELECT
, например:Это преобразование (
CAST()
является синонимомCONVERT()
) очень полезно, если у ваших таблиц разные наборы символов в одном и том же столбце таблицы (что может привести к потере данных при неправильной обработке).источник
Правильный синтаксис для вашего запроса:
источник