刚刚接触 SQL 的学生。我知道类似的问题已经在这里被问过多次,但我似乎无法弄清楚问题出在哪里。我正在做一个记录血压的基本项目。我的想法是,以下代码将初始化用户表(以跟踪登录者)和读数表(血压读数)的架构:
CREATE DATABASE IF NOT EXISTS bloodpressure;
USE bloodpressure;
CREATE TABLE IF NOT EXISTS appusers (
userid INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
username VARCHAR(25) UNIQUE NOT NULL,
psword VARCHAR(25) NOT NULL
);
CREATE TABLE IF NOT EXISTS bpreadings (
reading INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
user_id INT NOT NULL,
sys DECIMAL(3 , 0 ) NOT NULL,
dia DECIMAL(3 , 0 ) NOT NULL,
pulse DECIMAL(3 , 0 ) NOT NULL,
FOREIGN KEY (user_id)
REFERENCES appusers (userid)
);
我遇到的问题是错误代码:
Error Code: 1364. Field 'user_id' doesnt have a default value
这是我运行后:
INSERT INTO appusers (username, psword) VALUES ("user1", "pwd1");
运行正确,然后尝试运行:
INSERT INTO bpreadings (sys, dia, pulse) VALUES (128, 72, 88);
我最初的想法是使用 FK 从 appusers 中的 userid 填充它,但它不会保留。我认为我不需要 Readings.user_id 的默认值。我还检查了插入带有数据的 appusers,并且主键 userid 填充良好并且自动增量正确。我只是在努力让它继续下去。这是我遗漏的简单内容还是设计中的整体缺陷?
先感谢您!