SQL - вставить несколько строк без двойных - PullRequest
0 голосов
/ 07 января 2019

Я хочу вставить несколько строк в базу данных, но я вставил только одну строку или вставил пропущенную строку

Структура моей таблицы SQL:

CREATE TABLE `test` 
(
    `ID` INT UNSIGNED NOT NULL AUTO_INCREMENT,
    `time` datetime NOT NULL,
    `nb_osuser` int NOT NULL,
    `osuser_name` nvarchar(100)NOT NULL,
    `program` nvarchar(100)NOT NULL,
    `last_line` nvarchar(100)NOT NULL,

    PRIMARY KEY (`ID`),
    UNIQUE KEY (`time`)
) ENGINE=InnoDB;

Вставить запрос:

#Connect to the database.
my $dbh = DBI->connect("DBI:mysql:database=database;host=IP",
"hostname", 'password',
{'RaiseError' => 1});

while (my ($user, $ref) = each %counts) {
  while (my ($program, $count) = each %$ref) {
    #print "$count OSUSER with session $user and with program $program\n";
    print "time = $time, count = $count, user = $user, program = $program, last_line = $last_line\n";

    $request ="'$time', '$count', '$user', '$program', $last_line";

    my $sth = $dbh->prepare("REPLACE `test` (time, nb, os_name, program, last_line) VALUES($request);")
  }
}

Данные в моей таблице:

       ID  USER                      TERMINAL        SERVICE                    
---------- ------------------------- --------------- -------------------------  
         1 toto                      titi            roro          
         2 toto                      titi            roro          
         4 gigi                      gege            fefe     

Я хочу:

+----+---------------------+-----------+-------------+----------------+-----------+
| ID | time                | nb        | os_name     | program        | last_line |
+----+---------------------+-----------+-------------+----------------+-----------+
| 15  | 2019-01-04 14:00:00|        33 | titi        | roro           | 109       |
| 16  | 2019-01-04 14:00:00|        9  | gege        | fefe           | 109       | 

Спасибо за любую информацию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...