Forum Webscript.Ru

Общие => Базы данных => Тема начата: FDM от 25 Апреля 2006, 20:58:56

Название: Создать две строки одним запросом
Отправлено: FDM от 25 Апреля 2006, 20:58:56
Народ, подскажите пожалуйста, как можно создать две строки в базе одним запросом.
вот примерный код...

$sql1 = "INSERT INTO extensions_table ( app, exten, priority, context, appdata) VALUES (";
   $sql1 .= "\'".set."\',";
   $sql1 .= "\'".s."\',";
   $sql1 .= "\'".l."\',";
   $sql1 .= "\'".$_POST[name]."\',";
   $sql1 .= "\'".$_POST[ft1]."\');";
   $result = $db->query($sql1);
      
   if(DB::IsError($result)) {
      die($result->getMessage().\'
\'.$sql1);
   }
   $sql2 = "INSERT INTO extensions_table (app, exten, priority, context, appdata) VALUES (";
   $sql2 .= "\'".goto."\',";
   $sql2 .= "\'".s."\',";
   $sql2 .= "\'".l."\',";
   $sql2 .= "\'".$_POST[name]."\',";
   $sql2 .= "\'".$_POST[ft2]."\');";
   $result = $db->query($sql2);
   if(DB::IsError($result)) {
   die($result->getMessage().\'
\'.$sql2);
}
Вот при таком запросе база говорит что
DB Error: already exists
Как можно это сделать?
Просто исторически сложилось, что один пользователь в базе описывается двумя строками... и если заводить пользователя, то нужно сразу две строки вводить... причем  
строки отличаются только двумя полями, остальные поля у двух стрк одинаковы, не считаю автоинкрементного ид.
Название: Создать две строки одним запросом
Отправлено: vasa_c от 26 Апреля 2006, 11:05:30
Можно так:
insert into (<столбцы>) values (значения первой строки),
(значения второй строки), (еще значения), ....

Только, возможно, не все версии всех БД это поддерживают.

А почему не хотите 2-я инсертами? Боитесь порвется связь за это время?
Название: Создать две строки одним запросом
Отправлено: commander от 03 Мая 2006, 17:38:10
FDM
можно пользовать COPY...
только вот... зачем?