Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Insert into - dodanie wielu rekordów naraz
seba123
post
Post #1





Grupa: Zarejestrowani
Postów: 57
Pomógł: 1
Dołączył: 20.03.2008

Ostrzeżenie: (0%)
-----


Cześć.

Mam zapytania typu
  1. INSERT INTO `song` (`title`, `id`, `server`, `dateline`) VALUES ("tytul ", "1", "2", "1316382138"),("tytul2", "3", "4", "1316382138"),("tytul3", "5", "6", "1316382138");
oraz indeks UNIQUE na komórkę ID. Zapytania oczywiście są większe, dla przykładu dałem skrócone.

Wszystko działa ok, do czasu zduplikowanego klucza - tj jeżeli w całym zapytaniu choć jedna wartość ID zwróci zduplikowany klucz (tj jest już taki w bazie), to żadne wartości z tego zapytania nie są dodawane. Jak temu zapobiec ? Czy INSERT IGNORE załatwi tu sprawę?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
melkorm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


A dlaczego niby miało by nie zadziałać?

  1. CREATE TABLE IF NOT EXISTS `foo` (
  2. `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `someunique` varchar(255) NOT NULL,
  4. PRIMARY KEY (`id`),
  5. UNIQUE KEY `someunique` (`someunique`)
  6. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


  1. INSERT INTO `foo`( `someunique`) VALUES ('a'), ('a'),('a') ON DUPLICATE KEY UPDATE someunique = someunique;


Zresztą REPLACE używa DELETE/INSERT lub UPDATE przy FK i DELETE moga być problemy że Tobie usunie wiersze w relacji.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 14:55