Если нет записи, то INSERT INTO, если есть, то пропустить

L

ler

Гость
#1
Есть две sql базы юзеров
1 Старая полная
2 Новая подчищеная

Как импотрировать старую базу в новую, при этом не изменяя существующие записи

Начало базы

PHP:
LOCK TABLES `bb_users` WRITE;
/*!40000 ALTER TABLE `bb_users` DISABLE KEYS */;
INSERT INTO `bb_users` VALUES (-1,0,'Anonymous','d41d8cd98f11b204e9800668ecf8423e',0,0,0,'0',1336167080,'0',0,379,3.00,'russian',2,0,1347700415,0,0,'',0,0,0,0,'','','','','','','','','','',0,'',446,3.00,'default',1,0,0,1),(2,1,'admin',...............
 
L

ler

Гость
#5
Не уважаешь :)) Было бы куда более странно если бы я сюда скинул весь запрос с хешем админа и 20 тыс юзеров

Еще попробовал эдакое
INSERT INTO `bb_users` VALUES (.....) ON DUPLICATE KEY UPDATE user_id=user_id;

Та же ошибка
 

PheRum

Разработчик
#6
как пример
Код:
INSERT IGNORE INTO `bb_users` (user_id, username, user_password) VALUES (100, 'test user', 'pass');
 
L

ler

Гость
#7
Я гениален, импортировал базу в которой на одну колонку меньше. Сейчас нашел другой бэкап.

INSERT IGNORE задумался, импортировал меньше половины а потом выдал
#1062 - Duplicate entry '3986' for key 'PRIMARY'
 
L

ler

Гость
#9
Разобрался
В SQL дампе INSERT INTO был разбит на 20 частей, а я прописал IGNORE только для первого INSERT
 
Сверху