mysql - 字段 'id' 没有默认值?

标签 mysql insert create-table

我是这个 SQL 的新手;我在更大的程序中看到了类似的问题,目前我无法理解。我正在为我的主页中使用的纸牌游戏创建一个数据库。

我在 Windows 上使用 MySQL Workbench。我得到的错误是:

Error Code: 1364. Field 'id' doesn't have a default value

CREATE TABLE card_games
(
nafnleiks varchar(50), 
leiklysing varchar(3000), 
prentadi varchar(1500), 
notkunarheimildir varchar(1000), 
upplysingar varchar(1000), 
ymislegt varchar(500), 
id int(11) PK
);

insert into card_games (nafnleiks, leiklysing, prentadi, notkunarheimildir, upplysingar, ymislegt)

values('Svartipétur',
'Leiklýsingu vantar',
'Er prentað í: Þórarinn Guðmundsson (2010). Spilabókin - Allir helstu spilaleikir og spil.',
'Heimildir um notkun: Árni Sigurðsson (1951). Hátíðir og skemmtanir fyrir hundrað árum',
'Aðrar upplýsingar',
'ekkert hér sem stendur'
);

values('Handkurra',
'Leiklýsingu vantar',
'Er prentað í: Þórarinn Guðmundsson (2010). Spilabókin - Allir helstu spilaleikir og spil.',
'Heimildir um notkun', 
'Aðrar upplýsingar',
'ekkert her sem stendur'
);

values('Veiðimaður',
'Leiklýsingu vantar',
'Þórarinn Guðmundsson (2010). Spilabókin - Allir helstu spilaleikir og spil. Reykjavík: Bókafélagið. Bls. 19-20.',
'vantar',
'vantar',
'vantar'
);

最佳答案

由于 id 是主键,所以不能有相同值的不同行。尝试更改您的表格,以便 id 自动递增:

id int NOT NULL AUTO_INCREMENT

然后设置主键如下:

PRIMARY KEY (id)

大家一起:

CREATE TABLE card_games (
   id int(11) NOT NULL AUTO_INCREMENT,
   nafnleiks varchar(50),
   leiklysing varchar(3000), 
   prentadi varchar(1500), 
   notkunarheimildir varchar(1000),
   upplysingar varchar(1000),
   ymislegt varchar(500),
   PRIMARY KEY (id));

否则,您可以在每次插入时指定 id,注意每次设置不同的值:

insert into card_games (id, nafnleiks, leiklysing, prentadi, notkunarheimildir, upplysingar, ymislegt)

values(1, 'Svartipétur', 'Leiklýsingu vantar', 'Er prentað í: Þórarinn Guðmundsson (2010). Spilabókin - Allir helstu spilaleikir og spil.', 'Heimildir um notkun: Árni Sigurðsson (1951). Hátíðir og skemmtanir fyrir hundrað árum', 'Aðrar upplýsingar', 'ekkert hér sem stendur' );

关于mysql - 字段 'id' 没有默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25865104/

相关文章:

mysql - 希望 SQL Server CONSTRAINT 不允许特定的特定字符串

mysql - 如何增加 INSERT IGNORE 到 UNIQUE 列的数量?

php - 在mysql中使用GET插入数据

mysql - 意外的外键

MYSQL 预定事件

python - 如何彻底删除sqlalchemy中的数据库连接?在 python 任何地方给予 max_user_limit

java jdbc gui应用程序-需要允许用户输入

php - 无法在 PHP 中创建查询变量作为表名的 SQL 表

sql - Postgres 通过多个连接创建表

mysql - 将设置为使用 MyISAM 的程序转换为 INNODB