Mysql Автоинкремент int аналогичных данных
Так что это больше вопрос о том, как можно это сделать, я новичок в кодировании MySQL/PHP, когда речь идет не только об основах, поэтому мне просто интересно, как можно настроить автоматическое увеличение int, где, если две фамилии были бы одинаковыми, они бы их считали. Я не смог ничего найти на нем во время поиска в Интернете, но пример будет:
в базе данных у нас 5 пользователей
1. james smith 1
2. terry smith 2
3. john smith 3
4. jerry fields 1
5. tom straus 1
Когда эти пользователи регистрируются, мне нужно создать int, чтобы Джон Смит был третьим лицом с той же фамилией Смит, в то время как Джерри Полс - первый человек с полями фамилии и т. Д. Как можно это сделать?
Я создал форму, которая регистрирует пользователя с помощью jjery/php ajax-метода, но я хотел бы добавить что-то похожее на это, чтобы оно объединяло это число с их именами для создания определенного идентификатора пользователя.
1 ответ
Как описано в разделе ИспользованиеAUTO_INCREMENT
:
За
MyISAM
а такжеBDB
таблицы, которые вы можете указатьAUTO_INCREMENT
на вторичном столбце в индексе с несколькими столбцами. В этом случае сгенерированное значение дляAUTO_INCREMENT
столбец рассчитывается какMAX(auto_increment_column) + 1 WHERE prefix=given-prefix
, Это полезно, когда вы хотите поместить данные в упорядоченные группы.
Поэтому вы можете сделать:
CREATE TABLE my_table (
firstname VARCHAR(31) NOT NULL,
lastname VARCHAR(31) NOT NULL,
counter BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (lastname, counter)
) Engine=MyISAM;
INSERT INTO my_table
(firstname, lastname)
VALUES
('james', 'smith' ),
('terry', 'smith' ),
('john' , 'smith' ),
('jerry', 'fields'),
('tom' , 'straus')
;
Смотрите это на http://sqlfiddle.com/.