Пробелемы с insert into table ...

botan

Новичок
Пробелемы с insert into table ...

Код:
mysql> insert into tmp1 (select birthday from database1 where birthday!="0000-00-00");
Работает на моем домашнем сервере (4.0.14-nt).
И не работает будучи вызваной из пхп на рабочем сервере (3.23.48-log)
Таблицы соответсвующие созданы.
Ошибки не выдает, просто в таблицу ничего не заносится.
С чем это может быть связано ?
 

botan

Новичок
прочитал перед тем как постить.
Ответа не нашел.
 

botan

Новичок
сделал проще - поставил на сервак пхп май админ.
теперь пытаясь набрать в консоле тоже самое - не работает. Выдает ошибку именно на insert into table.
сами селекты работают.
может сервак не поддерживать таких обращений?
 

si

Administrator
запрос у тебя синтаксически не правильный
надо так:

[sql]
INSERT INTO tbl1 (field1) SELECT field2 FROM tbl2 WHERE fieald3='aaa';
[/sql]

или так:

[sql]
INSERT INTO tbl1 SELECT fielad1, field2 FROM tbl2 WHERE fieald3='aaa';
[/sql]
 

botan

Новичок
php myadmin:
пишет что все в порядке.
мой код тоже нормальный если в таблице в которую вставляю только одно поле.
А данные в таблицу не передаются.
Твой код - тоже попробовал. Работает. :)
Результат тот же.
 

si

Administrator
Варианта тут 3:
1. у тебя запрос не верный (синтаксически)
2. ты тут нам приврдишь не запрос не тот что выполняешь на сервере.
3. нет данных которые попадают под твое WHERE

1,2 - сделай Copy-Paste того запроса что ты РЕАЛЬНО выполняешь.

3 - сделай только SELECT .. FROM ... WHERE ... и посмотри что он выбирает.

Код:
mysql> create table tbl1 (id int);
Query OK, 0 rows affected (0.03 sec)

mysql> create table tbl2 (id int);
Query OK, 0 rows affected (0.03 sec)

mysql> insert into tbl1 values(1),(2),(3),(1);
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from tbl1;
+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
|    1 |
+------+
4 rows in set (0.00 sec)

[b]
mysql> insert into tbl2 (select id from tbl1 where id>1);
ERROR 1064: You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near 'select id from tbl1 where id>1)' at line 1
[/b]

mysql> insert into tbl2 select id from tbl1 where id>1;  
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> select * from tbl2;                    
+------+
| id   |
+------+
|    2 |
|    3 |
+------+
2 rows in set (0.00 sec)

mysql>
P.S. прочти правила форума как задавать вопросы.
 

botan

Новичок
Большое пасибо.
Хотя бы за то что еще не забанили.
Когда посидишь часиков 12 за компов - бывает начинаешь не адекватно себя вести.
Постораюсь больше дурацких вопросов не задавать.

Я сидел вчера до 5 утра. Ничего не добавляется в таблицу.
Хотя пхпмайадмин и писал
"Inserted rows: 3 "

Однако ничего в таблице не было.
Неоднократно проверял.

А сегодня с утра в таблице 15 новых записей.

Всем спасибо топик клоузд.
 
Сверху