Insert .... Select .... where

2 отговора 132 прегледа
#1

Insert .... Select .... where

Здравейте
искам да направя нещо такова с MySQL-ska таблица

INSERT INTO table (col_1, col_2, col_3)
SELECT col_1, 200, 300 FROM table WHERE col_2 = 100

...да ама MySQL-a се оплаква: Not unique table/alias: 'table'

може ли изобщо да INSERT-вам така?
MySQL-a e 3.23.41

Благодаря.

Отговор
в отговор на ano #2

Re: Insert .... Select .... where

table ли наистина използваш като име на таблицата или го даваш като пример? Ако използваш table като име хубаво е да му сложиш квадратни скоби ([table]) за да уточниш това.

Така става в sql server, не знам дали в mySQL е по същия начин

Отговор
в отговор на ano #3

Re: в 3.23 не, в 4.0 да

mysql> insert into t select * from t;
ERROR 1066: Not unique table/alias: 't'
mysql> select version();
+-------------------+
| version() |
+-------------------+
| 3.23.59-debug-log |
+-------------------+

mysql> insert into t select * from t;
Query OK, 4 rows affected (0.04 sec)
Records: 4 Duplicates: 0 Warnings: 0

mysql> select version();
+------------------+
| version() |
+------------------+
| 4.0.18-debug-log |
+------------------+

salle.online.bg/sig
Отговор