Как создать столбцы auto_increment в MySQL Workbench? - PullRequest
0 голосов
/ 04 мая 2020

Я использую MySQL Workbench для создания моих таблиц БД. У меня есть таблица под названием Movies. Среди его полей есть поле с именем purchase_times, предназначенное для записи общего количества покупок mov ie. Таким образом, он должен автоматически увеличиваться всякий раз, когда приобретается конкретный mov ie, но это не первичный ключ в таблице. Я хочу, чтобы в столбце читалось ноль, когда никто не купил mov ie, а затем изменился на 1, когда первый человек приобрел его, а затем продолжал увеличиваться по мере увеличения количества покупок mov ie.

Q1. Можно ли иметь два поля с автоинкрементом в одной таблице?

Q2. Как я могу установить значение указанного столбца равным нулю по умолчанию, т. Е. До того, как кто-нибудь купит mov ie?

Вот что я сделал:

CREATE TABLE Movies (
  movie_id INT(11) NOT NULL AUTO_INCREMENT,
  title VARCHAR(50) NOT NULL,
  genre VARCHAR(20) NOT NULL,
  release_year INT(11) NOT NULL,
  description TEXT(200) NOT NULL,
  poster_url VARCHAR(250) NOT NULL,
  purchase_times INT(11) AUTO_INCREMENT,
  PRIMARY KEY (movie_id)
);

1 Ответ

1 голос
/ 04 мая 2020

Q1. Да, это возможно. Но если у вас есть два столбца auto_increment, они будут одинаковыми, поэтому нет смысла иметь два столбца auto_increment.

Q2. Вы можете следовать этому запросу, чтобы установить 0 по умолчанию.

CREATE TABLE Movies (
  movie_id INT(11) NOT NULL AUTO_INCREMENT,
  title VARCHAR(50) NOT NULL,
  genre VARCHAR(20) NOT NULL,
  release_year INT(11) NOT NULL,
  description TEXT(200) NOT NULL,
  poster_url VARCHAR(250) NOT NULL,
  purchase_times INT(11) DEFAULT '0', //here is the zero default
  PRIMARY KEY (movie_id)
);
...