powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Добавление строк при CREATE TEMPORARY TABLE
8 сообщений из 8, страница 1 из 1
Добавление строк при CREATE TEMPORARY TABLE
    #39580811
sys23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При выполнении следующих запрос
Код: sql
1.
2.
3.
4.
5.
DROP TABLE IF EXISTS temp.t1 CASCADE;
CREATE TEMPORARY TABLE  temp.t1 AS SELECT '1' AS p1, '2' AS p2; 
CREATE TEMPORARY TABLE  IF NOT EXISTS temp.t1 AS SELECT '2' AS p1, '3' AS p2; 
CREATE TEMPORARY TABLE  IF NOT EXISTS temp.t1 AS SELECT '4' AS p1, '5' AS p2; 
SELECT * FROM temp.t1


каждый запрос CREATE TEMPORARY TABLE IF NOT EXISTS добавляет новые данные во временную таблицу temp.t1.
Результат:
p1 | p2
----------------
1 | 2
2 | 3
4 | 5
Кто-нибудь сталкивался с таким эффектом?
...
Рейтинг: 0 / 0
Добавление строк при CREATE TEMPORARY TABLE
    #39580825
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм, это противоречит доке
https://dev.mysql.com/doc/refman/5.7/en/create-table-select.html For CREATE TABLE ... SELECT, if IF NOT EXISTS is given and the target table exists, nothing is inserted into the destination table, and the statement is not logged.
...
Рейтинг: 0 / 0
Добавление строк при CREATE TEMPORARY TABLE
    #39580826
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
mysql> DROP TABLE IF EXISTS temp.t1 CASCADE;
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE TEMPORARY TABLE  temp.t1 AS SELECT '1' AS p1, '2' AS p2; 
Query OK, 1 row affected (0.01 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> CREATE TEMPORARY TABLE  IF NOT EXISTS temp.t1 AS SELECT '2' AS p1, '3' AS p2; 
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> CREATE TEMPORARY TABLE  IF NOT EXISTS temp.t1 AS SELECT '4' AS p1, '5' AS p2; 
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> SELECT * FROM temp.t1;
+----+----+
| p1 | p2 |
+----+----+
| 1  | 2  |
+----+----+
1 row in set (0.00 sec)
...
Рейтинг: 0 / 0
Добавление строк при CREATE TEMPORARY TABLE
    #39580827
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Единственное предположение - Вы выполняете запросы не через консоль, а в каком-то GUI-клиенте... А они любят посвоевольничать.
...
Рейтинг: 0 / 0
Добавление строк при CREATE TEMPORARY TABLE
    #39581365
sys23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, данный эффект получил от запросов, сохранённых в процедуре в БД MySQL.
В работе использую dbForge Studio for MySQL. Выполнение указанного мной кода на изображении (уже не в процедуре).
...
Рейтинг: 0 / 0
Добавление строк при CREATE TEMPORARY TABLE
    #39581366
sys23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот из командной строки:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
mysql> DROP TABLE IF EXISTS temp.t1 CASCADE;
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE TEMPORARY TABLE  temp.t1 AS SELECT '1' AS p1, '2' AS p2;
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> CREATE TEMPORARY TABLE  IF NOT EXISTS temp.t1 AS SELECT '2' AS p1, '3' AS p2;
Query OK, 1 row affected, 1 warning (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> CREATE TEMPORARY TABLE  IF NOT EXISTS temp.t1 AS SELECT '4' AS p1, '5' AS p2;
Query OK, 1 row affected, 1 warning (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM temp.t1;
+----+----+
| p1 | p2 |
+----+----+
| 1  | 2  |
| 2  | 3  |
| 4  | 5  |
+----+----+
3 rows in set (0.02 sec)


Версия сервера 5.1.73. Может дело в этом!? Какая у Вас версия БД
...
Рейтинг: 0 / 0
Добавление строк при CREATE TEMPORARY TABLE
    #39581429
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sys23Версия сервера 5.1.73. Может дело в этом!?Да, действительно, в старых версиях логика другая:
https://dev.mysql.com/doc/refman/5.5/en/create-table-select.html For CREATE TABLE ... SELECT, if IF NOT EXISTS is given and the destination table already exists, the result is version dependent. Before MySQL 5.5.6, MySQL handles the statement as follows:

The table definition given in the CREATE TABLE part is ignored. No error occurs, even if the definition does not match that of the existing table. MySQL attempts to insert the rows from the SELECT part anyway.и далее по тексту
...
Рейтинг: 0 / 0
Добавление строк при CREATE TEMPORARY TABLE
    #39581457
sys23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft, большое спасибо!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Добавление строк при CREATE TEMPORARY TABLE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]