主键在MySQL中没有默认值

时间:2018-01-31 16:17:50

标签: mysql

我试图在MySQL中做最简单的事情并收到错误。我创建了一个运行此查询的表。

create table STATION
( ID int NOT NULL
, CITY varchar(21)
, STATE varchar(2)
, LAT_N int
, LONG_N int
, primary key(ID) );

现在我试图在表格中插入一些数据,

INSERT INTO STATION 
(CITY, STATE, LAT_N, LONG_N) VALUES 
("Buffalo", "NY", 123, 233);

这是我得到的错误, ERROR 1364 (HY000): Field 'ID' doesn't have a default value

Isn的ID应该默认为0并自动增量?

3 个答案:

答案 0 :(得分:2)

您必须指定您想要一个自动增量字段。

ID int NOT NULL AUTO_INCREMENT,

例如,您的id可以是复合ID,然后是非自动增量ID。

https://www.w3schools.com/sql/sql_autoincrement.asp

的更多信息

答案 1 :(得分:2)

您应该提出身份证AUTO_INCREAMENT

create table STATION(
          ID INT NOT NULL AUTO_INCREAMENT, 
          CITY VARCHAR(21), 
          STATE VARCHAR(2), 
          LAT_N INT, 
          LONG_N INT ,
          PRIMARY KEY(ID)
);

答案 2 :(得分:1)

主键应该是唯一的值。因此,您不希望为id设置默认静态值,因为在第一次插入后无效。一个好的做法是使用auto_incrementable id代替。

{
  "presets": [
    ["env", {
      "targets": {
        "browsers": ["last 2 versions", "Chrome >= 34"]
      }
    }]
  ]
}