Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Можно ли вставить данные таблицы в эту же таблицу?
 
 автор: Filsh   (07.07.2011 в 01:34)   письмо автору
 
 

Всем привет
сегодня вот проходил тест по программированию и был один интересный вопрос на который я походу не правильно ответил и меня это слегка задело
собственно вопрос в теме, при чем без временной или промежуточной таблици

  Ответить  
 
 автор: Valick   (07.07.2011 в 07:26)   письмо автору
 
   для: Filsh   (07.07.2011 в 01:34)
 

INSERT SELECT?
не вижу что бы могло этому помешать

  Ответить  
 
 автор: Filsh   (07.07.2011 в 12:42)   письмо автору
 
   для: Valick   (07.07.2011 в 07:26)
 

Так вот именно и я так ответил, а оказалось не правильно!!!
вчера пробовал написать запрос ну что то у меня не получилось, сегодня вечером еще попробую

  Ответить  
 
 автор: cheops   (07.07.2011 в 13:36)   письмо автору
 
   для: Filsh   (07.07.2011 в 12:42)
 

Этот запрос может не сработать без расшифровки всех полей, если у вас используется уникальный индекс, однако, в таблицах без уникального индекса или если индекс снабжен атрибутом AUTO_INCREMENT и вы для него явно задаете NULL - проблем быть не должно - все вставляется нормально.

  Ответить  
 
 автор: Filsh   (08.07.2011 в 00:33)   письмо автору
 
   для: Filsh   (07.07.2011 в 01:34)
 

Таблица

+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(10)      | YES  |     | NULL    |       |
| name  | varchar(255) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+

запрос
insert into test select id, name from test;

или даже
insert into test selecе * from test;

Прекрасно работает!!!!
но если auto_increment и без null, то ошибка, но это и логично)

Спасибо, теперь меня не проведут))

  Ответить  
 
 автор: Filsh   (12.07.2011 в 12:33)   письмо автору
 
   для: Filsh   (08.07.2011 в 00:33)
 

Оказывается все правильно
там был вариант ответа
Да, одним запросом, но только есть таблица не временная

так вот если таблица временная, то нельзя, пишет
ERROR 1137 (HY000): Can't reopen table: 'table'

Вот так вот))

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования