Ответ 1
В соответствии с docs
SERIAL - это псевдоним для BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE.
Итак, будьте осторожны при создании ссылки на SERIAL PK, так как этот ссылочный столбец должен быть такого точного типа.
Я сталкивался с двумя способами, чтобы автоматически увеличивать идентификаторы в mysql.
Один SERIAL, а другой AUTOINCREMENT.
Итак, предположим, что хочу создать таблицу подруг. Я могу создать его двумя способами, например:
1)
mysql> create table myfriends(id int primary key auto_increment,frnd_name varchar(50) not null);
2)
mysql> create table myfriends(id serial primary key,frnd_name varchar(50) not null);
В чем разница между двумя?
ИЛИ
У кого-нибудь есть преимущества перед другими?
Пожалуйста, помогите.
В соответствии с docs
SERIAL - это псевдоним для BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE.
Итак, будьте осторожны при создании ссылки на SERIAL PK, так как этот ссылочный столбец должен быть такого точного типа.
AUTO_INCREMENT
- это атрибут определенного столбца любого числового типа (int или float), как подписанный, так и unsigned. Когда строки вставлены, он автоматически назначает последовательные номера, поэтому вам не нужно (например, используя LAST_INSERT_ID()
). См. http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html
SERIAL
- это псевдоним, который сочетает в себе тип столбца (BIGINT
в частности), AUTO_INCREMENT
, UNSIGNED
и другие атрибуты для определенного столбца (см. цитату из документов ниже). См. http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html
SERIAL - это псевдоним для BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE.
SERIAL DEFAULT VALUE в определении целочисленного столбца является псевдонимом для NOT NULL AUTO_INCREMENT UNIQUE.
От mysql doc
SERIAL - это псевдоним для BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE.
SERIAL DEFAULT VALUE в определении целочисленного столбца является псевдоним для NOT NULL AUTO_INCREMENT UNIQUE.
Если для столбца AUTO_INCREMENT не указано значение, MySQL автоматически назначает порядковые номера. Вы также можете явно назначить NULL или 0 столбцу для генерации порядковых номеров. MySQL не автоматически уменьшает значение автоинкремента при удалении строки. Причины: