LibreOffice Base 几列的主键?

LibreOffice Base 几列的主键?

我创建了一个包含如下表的数据库:

如何创建主键如:(患者、日期、测试、参数)?

该数据库将保存在不同日期多次检查的众多患者的数据,并且每次检查将进行多次测试,从而产生多个参数及其值以及其他数据。

然而,(患者、日期、测试、参数)的组合将是独一无二的。

答案1

所有将用作主键的列都必须为NOT NULL。要设置此项,请编辑表,然后针对每一列设置必須入場Yes编辑器的下方区域。

然后转到工具 -> SQL并运行以下命令。

ALTER TABLE "BloodTestResults" ADD PRIMARY KEY ("Patient", "Date", "Test", "Parameter");

保存、关闭并重新打开 .odb 文件。现在主键应该生效了。

4 列旁边的钥匙图标

尝试添加重复项将会产生错误。

添加重复项时出错

这是使用 Firebird 嵌入式数据库设置进行测试的。

参考:SQL 主键

答案2

创建表客户

Id 整数(15)NOT NULL PRIMARY KEY,

客户姓名 varchar (255),

国家/地区 varchar (255),

年 varchar (255),

); 插入客户(ID,客户名称,国家,年份)值(1,'Ronny','India',2020);如果需要更多信息和更多示例,请查找主键 sql

答案3

我猜您希望这些字段成为主键,因为它们是唯一的,而其他列不是。如果是这种情况,您应该将这四个字段拆分成一个单独的表,为该表创建一个单列主键,并将其用作包含非唯一数据的单独表的外键。例如:

CREATE TABLE Patient ( id INTEGER PRIMARY KEY, name VARCHAR(255), ... )
CREATE TABLE PatientTest (id INTEGER PRIMARY KEY, patientId INTEGER FOREIGN KEY,
    testDate DATE NOT NULL, test SOMETHING NOT NULL, parameter SOMETHING NOT NULL)
CREATE TABLE TestResult (id INTEGER PRIMARY KEY, patientTestId INTEGER FOREIGN KEY,
    resultImported VARCHAR(255), ... )

有些事情取决于您未告诉我们的事情。这允许对每个患者进行多次测试,并且每次测试都有多个结果。

相关内容