Ответы пользователя по тегу PHP
  • Почему ID в БД идут не по порядку?

    Я не наблюдаю эффекта ни с myisam, ни с innodb (версия сервера 5.0.45-community-nt MySQL Community Edition):
    mysql> create table mytable(id bigint auto_increment primary key,name varchar(32) unique);
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> insert ignore into mytable(name) values('aaa'),('bbb'),('ccc'),('aaa'),
    mysql> ('ddd'),('eee'),('bbb'),('fff');
    Query OK, 6 rows affected (0.02 sec)
    Records: 8  Duplicates: 2  Warnings: 0
    
    mysql> insert ignore into mytable(name) values('aaa'),('bbb'),('ccc'),('aaa'),
    mysql> ('ddd'),('eee'),('bbb'),('ggg');
    Query OK, 1 row affected (0.00 sec)
    Records: 8  Duplicates: 7  Warnings: 0
    
    mysql> select * from mytable;
    +----+------+
    | id | name |
    +----+------+
    |  1 | aaa  |
    |  2 | bbb  |
    |  3 | ccc  |
    |  4 | ddd  |
    |  5 | eee  |
    |  6 | fff  |
    |  7 | ggg  |
    +----+------+
    7 rows in set (0.00 sec)


    Аналогично при вставке из файла:
    C:\>type test.txt
    aaaa
    bbbb
    bbbb
    cccc
    dddd
    bbbb
    aaaa
    eeee
    
    mysql> create table mytable(id bigint auto_increment primary key,name varchar(32) unique);
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> load data local infile 'c:\\test.txt' ignore into table mytable(name);
    Query OK, 5 rows affected (0.00 sec)
    Records: 8  Deleted: 0  Skipped: 3  Warnings: 0
    
    mysql> select * from mytable;
    +----+------+
    | id | name |
    +----+------+
    |  1 | aaaa |
    |  2 | bbbb |
    |  3 | cccc |
    |  4 | dddd |
    |  5 | eeee |
    +----+------+
    5 rows in set (0.00 sec)


    Какая у вас версия MySQL и как конкретно вы вставляете?
    Ответ написан
    6 комментариев