Я хочу создать автоматический первичный ключ (автоинкремент), который начинается с JTM0605160001. Вот
Поэтому, когда пользователь хочет ввести данные, в этой форме уже есть ряд чисел. поэтому мне будет легко проверить их данные только на основе серийного номера формы. так что вы можете помочь мне с учебником и кодированием?
Я использую панель управления XAMPP и Dreamweaver CS6.
Я хочу серийный номер, как это:
JTM0605160001
JTM0605160002
JTM0705160003
…
поэтому форма будет такой:
нет серии: JTM0605160001 (автоматически предоставляется, когда пользователь хочет заполнить форму)
имя: Салли (пользователь заполнит эту форму)
возраст: 34 (пользователь заполнит эту форму)
схема таблицы:
CREATE TABLE combinedKey (
id INT(4) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,
prefix VARCHAR(3) NOT NULL,
datePrefix VARCHAR(6) NOT NULL,
PRIMARY KEY (id, prefix, datePrefix),
age INT(3),
name VARCHAR(30)
);
Итак, мы объединяем три столбца в первичный ключ, состоящий из вашего автоматически увеличивающегося идентификатора (обратите внимание на ZEROFILL
для ведущих нулей), ваш постоянный префикс и префикс даты (ваш формат не является форматом даты по умолчанию, поэтому мы форматируем его на INSERT
см. ниже), основываясь на INSERT
-Дата.
Вставка может выглядеть так:
INSERT INTO combinedKey (`prefix`,`datePrefix`,`age`,`name`) VALUES ('JTM',DATE_FORMAT(NOW(),'%d%m%y'),34,'Sally' );
Оператор выбора с выводом номера серии
SELECT CONCAT(`prefix`,`datePrefix`,`id`) AS series, `name`, `age` FROM combinedKey;
+---------------+-------+------+
| series | name | age |
+---------------+-------+------+
| JTM0106160001 | Sally | 34 |
+---------------+-------+------+
1 row in set (0.00 sec)
Если вам нужен новый номер серии перед тем, как вставить имя, возраст и т. Д., Вы можете вставить с помощью фиктивных данных / пустого значения, сохранить вставленную строку / новый номер серии и UPDATE
после этого.
Других решений пока нет …