gpt4 book ai didi

mysql - SQL - 创建表时出现 "Default"- 是否有必要?

转载 作者:行者123 更新时间:2023-11-29 04:20:29 26 4
gpt4 key购买 nike

查看标准 SQL 布局的示例,我看到了这一点:

CREATE TABLE IF NOT EXISTS siteUser (
id int(11) AUTO_INCREMENT PRIMARY KEY,
email varchar(64) NOT NULL UNIQUE KEY,
password varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT;

指定引擎末尾的“DEFAULT”的目的是什么?有必要吗?我试图在教程网站上找到它的解释,但我没有找到任何运气。

詹姆斯

最佳答案

你确定这不是错误吗?我在创建表语句中找不到数据库引擎的 default 参数的任何引用。此外,在 MySQL 5.1 和 5.5 中,您的创建表语句在 SQLFiddle.com 中均失败。

我认为您可能将默认值误解为 engine 子句的一部分,而实际上它是 charsetcollat​​e 的一部分条款。例如,这是有效的,因为 default 是字符集子句前面的可选关键字:

CREATE TABLE IF NOT EXISTS siteUser (
id int(11) AUTO_INCREMENT PRIMARY KEY,
email varchar(64) NOT NULL UNIQUE KEY,
password varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET = utf8;

我想 charsetcollat​​e 子句可以有 default 关键字(顺便说一下,这实际上是没有意义的),因为它们指定了一个默认字符集或排序规则,但仍有可能按列覆盖它。

对于存储引擎来说,这很愚蠢。单个表没有“默认”存储引擎。只有一个。此外,如果它为整个数据库设置默认值也没有意义。为什么这是创建表语句中的一个选项?

关于mysql - SQL - 创建表时出现 "Default"- 是否有必要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25709192/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com