编辑数据库表的结构


“数据库表”编辑和保存供 HMI使用的数据库中的表。

这里的数据库表是保存在数据库中的表格(table)。

此在画面上,可以编辑数据库表中的结构,编辑表中列的名称、数据的类型等。

最大列数为256。


内容


数据库表设定

显示数据库表设定画面,可以确认或设定数据库表的名称等内容。

编辑数据库表的数据

显示编辑数据库表数据画面,可以编辑数据库表的数据内容。


追加列

按“添加列”按钮,可以在列的编辑区域,添加新的一列。

在编辑的过程中,不会在实际的数据库表中增加列。只有在保存设定后,数据库中才会增加或修改列。


废弃编辑(内容)

获取数据库表的当前结构设定,编辑修改的内容将被废弃。

如果编辑时出现错误,建议废弃当前的编辑内容,确认数据库表的实际结构中列的设置。


数据表的列

操作

按下此按钮,保存所选列的编辑内容。

按下此按钮,从编辑区域删除此列。只要不按“保存设定”,这个列不会实际从数据库表中删除。

列名

可以通过点击名称部分更改列名。名称必须以小写字母开头,以字母或数字构成。不能使用特殊字符,如“双引号”或“单引号”等,也不能使用数据库SQL语言中的关键词,如select, from等。

此外,列名不能重复。

备注

为各个列设定备注。可以在HMI表格部件中显示。

以“jp:XXX,en:XXX,zh:XXX”的形式设定多语言的备注。HMI的中,可以根据现在的语言,显示设定的备注。

类型

指定列的数据类型。

列的数据类型,在以下的类型中选择。

数据类型为“真假”、“整数”、“实数”、“字符串”、“日期”、“时间”、“日期和时间”七种。 各对应于数据库内的"boolean","int","float","text","date","time","timestamp"类型。

当列的类型被修改时,如果数据已经存在,会发生数据的转换。如果新旧类型之间无法转换,则不能保存修改。

关于是否可以进行类型的转换,请参阅以下的类型转换可否表。

类型转换可否表
转换目标类型 可以转换的类型 可以转换,但不保留原值 不能转换
真假字串数值实数,日期,时间,日期和时间
整数实数,字符串真假日期,时间,日期和时间
实数字串整数真假,日期,时间,日期和时间
字串真假,数字,真实,日期,时间,日期和时间※1
日期字符串,日期和时间真假,整数,实数,时间
时间字符串真假,整数,实数,日期,日期和时间
日期和时间字串日期,时间真假,整数,实数

※1 从字符串转换到指定类型时,数据库表中保存的值,必须符合目标类型的格式。

属性

可以设定列的属性。

“唯一值”是在所有数据记录中不能重复的值。如果此选项有效,此设置将不允许创建本列中出现相同的值的记录,但NULL是例外。设定数据库的所谓UNIQUE的约束。

“主键”是用来识别数据库表上记录的列。如果此选项有效,“主键”与“_id_”将构成唯一的识别组合。此外,NULL输入将不被允许。详细请参阅 创建数据库表。设定数据库的所谓PRIMARY的约束。

默认值

设置每个列的默认值。

默认值是当一个新的记录被添加到数据库表时,在没有指定值时使用的缺省值。

改变默认值的设置,不会改变数据库中既存记录的值。

默认值不能设置为null。

与时间关联的列的默认值,可以设置为“now()”。“now()”是指当前的时间。

将数据库表保存为CSV

下载数据库表格的数据,并保存为CSV格式的文件。

在删除数据库表,删除数据库表中的记录,或者做列的类型的变更之前,建议先将数据库表保存为csv文件作为备份。

取消(设定)

放弃当前的编辑内容。

从当前画面回到数据库表的一览画面。

保存结构

保存当前的编辑内容。根据列的“类型”,“属性”的修改内容,可能弹出警告画面。

如果出现警告画面,请确认内容中。如果确定没有问题,选择“只管执行”。如果即使有可能删除既存的数据库表的记录,也继续执行的话,按“删除数据后执行”。 如果要取消,请按“取消”按钮或画面上的按钮×。

如果要选择“只管执行”,“删除数据后执行”,建议先保存为CSV文件作为备份。

保存后返回

保存当前的编辑内容,返回到数据库表的一览画面。根据列的“类型”,“属性”的修改内容,可能弹出警告画面。

如果出现警告画面,请确认内容中。如果确定没有问题,选择“只管执行”。如果即使有可能删除既存的数据库表的记录,也继续执行的话,按“删除数据后执行”。 如果要取消,请按“取消”按钮或画面上的按钮×。

如果要选择“只管执行”,“删除数据后执行”,建议先保存为CSV文件作为备份。

在保存成功后,返回到数据库表的一览画面。


关于创建的数据库表

通过本编辑画面创建的数据库表,具有以下属性。

自动追加了“_id_”和“_timestamp_”列

“_id _”与“_ timestamp_”两个列,用于提供“数据库表”检索和时效功能。

“_id_”用于编辑数据库表格的数据,使的对于1个记录的修改,不会影响到其他记录。

“_id_”为连号的整数,并设置为主键。

如要操作“_id_”的值,建议另外设定其他的列为主键。

“_timestamp_”提供数据的限制功能,当记录被追加或更新时,将更新时的时间保存在此列中。

“_timestamp_”的数据类型为“日期和时间”(timestamp with time zone),默认值为“now()”。

通过“数据库操作”更新数据库表的记录时,如果没有指定“_ timestamp_”的值,将使用当前时间更新此列。

这两个列,虽然可以用于“数据库操作”,但应避免通过“数据库操作”改变他们的值,可能导致“数据库表”预想外的问题。

创建数据库表时,不能输入null值

在追加列,或编辑表的数据时,或通过“数据库操作”更新、追加记录时,将插入的默认值,而不是null。

这是因为,HMI的监控画面不能使用null值。因此,必须设定列的默认值。

但是并不表示数据库表的列不能使用null值(列的属性并没有标明为NOT NULL约束)。