Вставка нескольких записей одним запросом

krafty

new Exception
Вставка нескольких записей одним запросом

Есть таблица
[sql]
CREATE TABLE `table` (
`id` int(11) NOT NULL auto_increment,
`field1` varchar(50) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `field1` (`field1`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3 ;
[/sql]
Нужно всавить сразу несколько записей. Делаю так:
[sql]
INSERT INTO table IGNORE (field1) VALUES ( 'A','B')
[/sql]
не работает
[sql]
INSERT INTO table IGNORE (id,field1 )
VALUES ('1','2') ( 'A','B')
[/sql]
не работает

Вообще нужно вставить данные из массива: каждый элемент - это запись. Т.е. в запросе участвует переменная $q, которая содержит все элементы массива, перечисленные через запятую
 

Фанат

oncle terrible
Команда форума
нужно открыть документацию и посмотреть правильный синтаксис.
 

krafty

new Exception
Так работает
[sql]
INSERT INTO table1 IGNORE (
id,
field1
)
VALUES (
'1', 'A'
)(
'2', 'B'
)
[/sql]
А если поля id оставить пустыми, то ошибка: #1264 - Out of range value adjusted for column 'id' at row 1

Не пойму как с таким синтаксисом вставить весь массив (1 элемент = 1 запись).
 

Фанат

oncle terrible
Команда форума
открыть документацию и посмотреть правильный синтаксис.
 

krafty

new Exception
хотя бы подскажите в ту сторону копаю!
--работает
INSERT INTO table1 SET field1=('A')
--не работает
INSERT INTO table1 SET field1=('A','B')
--не работает
INSERT INTO table1 SET field1=('A'),('B')

-~{}~ 25.10.05 16:48:

в мане синтаксис такой
[sql]
INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
[INTO] tbl_name
SET col_name=(expression | DEFAULT), ...
[ ON DUPLICATE KEY UPDATE col_name=expression, ... ]
[/sql]
 

krafty

new Exception
все варианты пробывал, а вот самый логичный нет!
РАБОТАЕТ!!!
INSERT IGNORE INTO table1 (field1) VALUES ('C'),('D'),('E')
Фанат, СПАСИБО!!!
 
Сверху