Когда я пытаюсь выполнить следующий запрос:
SELECT id_subscriber
INTO newsletter_to_send
FROM subscribers
Я получаю сообщение об ошибке:
#1327 – Необъявленная переменная: информационный бюллетень_to_send
Что не так с этим запросом?
Когда я пытаюсь выполнить следующий запрос:
SELECT id_subscriber
INTO newsletter_to_send
FROM subscribers
Я получаю сообщение об ошибке:
#1327 – Необъявленная переменная: информационный бюллетень_to_send
Что не так с этим запросом?
INSERT ... SELECT
http://dev.mysql.com/doc/refman/5.1/en/insert-select.html
INSERT INTO newsletter_to_send
SELECT id_subscriber FROM subscribers
PS: вы уверены, что вам не нужен пункт WHERE
?
select ...into
--- есть ссылки в документации? Я не знаю такого синтаксиса.
- person zerkms; 28.07.2014
select ...into
предназначен для SQL Server, а не для MySQL. См. https://stackoverflow.com/questions/16683758/.
- person Paul Chris Jones; 20.12.2018
MySQL не поддерживает синтаксис SELECT ... INTO ...
.
Вы должны использовать синтаксис INSERT INTO ... SELECT ..
для этого.
Подробнее читайте здесь.. http://dev.mysql.com/doc/refman/5.0/en/insert-select.html
Я думаю, вы можете следовать моему указанному пути, и, надеюсь, вы сможете решить свою проблему.
Сначала используйте эту команду sql, чтобы создать новую таблицу, в которой вы хотите сделать резервную копию.
CREATE TABLE destination_table_name LIKE source_table_name;
После этого вы можете использовать эту команду для копирования этих данных
INSERT INTO destination_table_name
SELECT * FROM source_table_name;
Если у вас уже есть предыдущие данные в таблице назначения, сначала вы можете использовать эту команду
TRUNCATE TABLE destination_table_name;
Спасибо г-н Маруф Хоссейн
MySQL не поддерживает SELECT INTO [table]
. Он поддерживает только SELECT INTO [variable]
и может делать только это по одной переменной за раз.
Что вы можете сделать, так это использовать CREATE TABLE
синтаксис с SELECT
выглядит следующим образом:
CREATE TABLE bar ([column list]) SELECT * FROM foo;
SELECT [values] INTO [variables]
. Проверьте dev.mysql.com/doc/refman/5.7/en /select-into.html
- person Gusstavv Gil; 16.08.2017
Я пытался работать над этим только сейчас, и это работает для меня:
CREATE TABLE New_Table_name
SELECT * FROM Original_Table_name;
MySQL Server не поддерживает расширение Sybase SQL SELECT ... INTO TABLE. Вместо этого MySQL Server поддерживает стандартный синтаксис SQL INSERT INTO... SELECT, который в основном является одним и тем же. См. Раздел 12.2.5.1, «Синтаксис INSERT ... SELECT».
Ссылка: - это
mysql не поддерживает синтаксис SELECT... INTO...,
если это новая таблица, используйте синтаксис CREATE TABLE... SELECT....
пример:
CREATE TABLE artists_and_works
SELECT artist.name, COUNT(work.artist_id) AS number_of_works
FROM artist LEFT JOIN work ON artist.id = work.artist_id
GROUP BY artist.id;
подробнее здесь create-table-select
Если вы хотите создать новую таблицу как дублирующую таблицу.
CREATE TABLE WorkerClone LIKE Worker; //only structure will show no data
CREATE TABLE WorkerClone Select * from Worker; //DUPLICATE table created with all details.
Вы можете сделать это без CREATE TABLE
+ INSERT INTO
+ DROP TABLE
Вот так:
SELECT @newsletter_to_send := id_subscriber
FROM subscribers WHERE your_condition = your_value;
MySQL не поддерживает SELECT INTO [table]
. Он поддерживает только SELECT INTO [variable]
и может выполнять эту переменную только по одной за раз.
Однако вы можете использовать синтаксис CREATE TABLE
с SELECT
следующим образом: