2012-06-17 6 views
0

Я используюmysql copy table?

mysql_query("INSERT INTO imaegs_backup SELECT * FROM images"); 

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

id  name  link 

1  name1  www.aaa.com/1 
2  name2  www.aaa.com/2 
3  name3  www.aaa.com/3 

5  name5  www.aaa.com/5 

как вы можете видеть, номер id 4 отсутствует в таблице изображений. и когда я обрабатываю таблицы, я получаю тот же результат в таблице images_backup (что ожидается). Как скопировать таблицу изображения в images_backup, и я хочу, чтобы результат будет что-то вроде этого:

id  name  link 

1  name1  www.aaa.com/1 
2  name2  www.aaa.com/2 
3  name3  www.aaa.com/3 
4  name5  www.aaa.com/5 

, как вы можете видеть в строке 4 есть name5 и ссылка на изображение 5. Примечание: Идентификатор столбец устанавливается на auto increment, но я могу это изменить.

+0

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

+0

Я хочу выбрать наиболее просматриваемые изображения на веб-сайте. На данный момент я только застрял в этой проблеме, потому что я не хочу иметь пустую строку id. –

+0

Почему бы и нет? Что с этим не так? Автоматические приращения * разработаны *, чтобы иметь отсутствующие элементы, где произошло удаление –

ответ

3

Если таблица, в которую вы вставляете, имеет идентификатор автоинкремента, а затем просто укажите два столбца; поле автоматического увеличения позаботится о самом значении:

INSERT INTO images_backup (name, link) 
SELECT name, link FROM images ORDER BY id 
+0

Спасибо, что сработали :) –