我尝试在/etc/mysql/mysql.conf.d/mysqld.cnf
(Ubuntu)中添加这一行
innodb_strict_mode = 1
Run Code Online (Sandbox Code Playgroud)
这是在 [mysqld] 部分中,我在其他示例中看到了这一行。我知道这个配置文件正在启动时被读取,因为如果我输入无意义的内容,我会得到错误。
尽管如此, SHOW VARIABLES 将该变量列为 OFF 并且显然我可以在不指定非默认字段的情况下插入行。
为什么没有设置这个变量?
我试过=on
代替=1
,没有区别。否则,配置未从安装默认值 AFAIK 中修改,全文请点击此处。
我的存储过程执行SELECT ... INTO var
产生 NULL,但如果我SELECT
自己重复相同的操作,我会得到一个值。
这是架构的相关部分
CREATE TABLE UrlAuthority
(
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY
,name VARCHAR(255) NOT NULL COMMENT 'includes TLD suffix'
,UNIQUE(name)
)
ENGINE = INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE TABLE UrlFqdn
(
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY
,authority BIGINT NOT NULL COMMENT 'references example.com'
,name VARCHAR(255) NOT NULL COMMENT 'host.example.com'
,FOREIGN KEY (authority) REFERENCES UrlAuthority (id)
,UNIQUE (authority, name)
)
ENGINE = INNODB DEFAULT CHARACTER SET …
Run Code Online (Sandbox Code Playgroud) mysql ×2