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

Форум MySQL

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

 

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

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

тема: Разбиение БД с конвертацией полей.
 
 автор: Gostemilov   (22.03.2007 в 00:37)   письмо автору
 
 

Вопрос не так чтобы сложный, но очень муторный.
Дано: несколько тысяч записей в 1 таблице. Структура записи:
CREATE TABLE `xxx_files_content` (
`lid` mediumint(8) unsigned NOT NULL auto_increment,
`cid` mediumint(8) unsigned NOT NULL default '0',
`label` mediumint(8) unsigned NOT NULL default '0',
`title` varchar(60) NOT NULL default '',
`listtext` text NOT NULL,
`description` text NOT NULL,
`url` varchar(255) NOT NULL default '',
`homepage` varchar(255) NOT NULL default '',
`version` varchar(10) NOT NULL default '',
`size` int(10) unsigned NOT NULL default '0',
`platform` varchar(30) NOT NULL default '',
`logourl` varchar(255) NOT NULL default '',
`submitter` mediumint(8) unsigned NOT NULL default '0',
`status` tinyint(1) unsigned NOT NULL default '0',
`date` int(10) unsigned NOT NULL default '0',
`hits` mediumint(8) unsigned NOT NULL default '0',
`rating` float(3,2) unsigned NOT NULL default '0.00',
`votes` smallint(5) unsigned NOT NULL default '0',
`comments` smallint(5) unsigned NOT NULL default '0',
`groups` varchar(20) NOT NULL default '1 2',
PRIMARY KEY (`lid`),
KEY `idx` (`status`,`cid`)
) ENGINE=MyISAM AUTO_INCREMENT=59307 /*!40101 DEFAULT CHARSET=cp1251 */;

INSERT INTO `_xxx_files_content` VALUES
(2, 7, 0, 'Free Site Template ¹ 0001', 'Free Site Template 0001. PSD included', 'Free Site Template 0001. PSD included', 'http://xxx.ru/lekxrudata/cache/files/templates/0001.rar', '', '', 489768, '', 'http://xxx.ru/lekxrudata/cache/shots/templates/0001.gif', 1, 1, 1134839393, 49, '0.00', 0, 0, '1 2'),

Все это прекрасно работает и вопросов не вызывает. Но возникла необходимость в смене движка, а там эти же данные придется раскидать по 2-м таблицам.

Вопросы:
1.Как перенумеровать в таблице записи от 0 до последней с шагом 1, для примера в `lid` mediumint(8) unsigned NOT NULL auto_increment, ?
2. Как заменить во всех записях одной таблицы, допустим Free Site Template на что-то другое, учитывая,то в каждой записи после этого текста стоит уникальный номер?

Очень давно не работал на уровне команд с MySQL, все забыл.... Извините, если некорректно поставил вопрос..

   
 
 автор: Kroshemin   (23.03.2007 в 13:52)   письмо автору
 
   для: Gostemilov   (22.03.2007 в 00:37)
 

На вопрос 1.: Перенумирововать не надо, вставляя в новую таблицу, ставте NULL вместо этого поля, если оно auto_increment, получите последовательные нумера. ;)
2й вопрос: UPDATE для всех записей с поиском заменой, вроде:
UPDATE `xxx_files_content` SET `title` =REPLACE(`title`,'Free Site Template ','Some string')
WHERE `title` LIKE 'Free Site Template %'

А вообще, приведите требемую структуру новой базы, может скажу конкретней.

   
Rambler's Top100
вверх

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