【问题标题】:How to creating auto_increment columns in MySQL Workbench?如何在 MySQL Workbench 中创建 auto_increment 列?
【发布时间】:2020-05-04 14:05:28
【问题描述】:

我正在使用 MySQL Workbench 创建我的数据库表。我有一张名为Movies 的表。它的字段中有一个名为purchase_times 的字段,用于记录购买一部电影的总次数。因此,它应该在购买特定电影时自动递增,但它不是表中的主键。当没有人购买电影时,我希望该列读取为零,然后在第一个人购买时更改为 1,然后随着电影的购买次数不断增加。

第一季度。同一张表中是否可以有两个自增字段?

第二季度。如何将所述列的值默认设置为零,即在电影被任何人购买之前?

这是我所做的:

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)
);

【问题讨论】:

  • Auto_increment 是一列,当您添加新行时会自动增加,因此允许有一个。
  • 您可能会认为一部电影可以属于多个流派,在这种情况下,流派将属于一个单独的表,并且还有另一个表来关联电影和流派。
  • 谢谢。我已经有一个单独的类型表和一个购买项目的表。

标签: mysql mysql-workbench


【解决方案1】:

第一季度。是的,这是可能的。但是,如果您有两个 auto_increment 列,它们将是相同的,因此拥有两个 auto_increment 列是没有意义的。

第二季度。您可以按照此查询设置 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)
);

【讨论】:

  • 非常感谢。那很有帮助。我在想,我可以有一个单独的表(购买)来记录购买的电影/系列,而不是购买时间的那一列,然后将电影/系列 id 作为该表中的外键,然后使用 COUNT 函数,我可以查询特定电影/系列的购买次数。这有意义吗?
  • 非常感谢。这很有帮助。
  • 如果真的有帮助的话。打勾,先生。
  • 打勾。现在我刚刚做到了。仍在此平台上进行定位。
猜你喜欢
  • 2014-06-29
  • 1970-01-01
  • 1970-01-01
  • 2011-01-26
  • 2014-01-10
  • 2012-04-22
  • 2011-09-18
  • 2022-11-12
  • 2014-12-06
相关资源
最近更新 更多