gpt4 book ai didi

mysql - HSQL 中的大写

转载 作者:行者123 更新时间:2023-11-29 05:54:33 24 4
gpt4 key购买 nike

有什么方法可以在 HSQL 的创建表中为元素创建大写默认值

CREATE TABLE IF NOT EXISTS  "job" (
"id" INTEGER IDENTITY,
"jobId" BIGINT ,
"jobName" VARCHAR(100) ,
PRIMARY KEY ("jobName")
);

现在我的需求是每次都以大写形式存储 jobName。

最佳答案

对于HSQLDB,生成列的解决方案(类似于MySQL的解决方案)是:

CREATE TABLE IF NOT EXISTS  "job" (
"id" INTEGER IDENTITY,
"jobId" BIGINT ,
"jobName" VARCHAR(100) ,
"jobNameU" VARCHAR(100) GENERATED ALWAYS AS (UPPER("jobName")),
PRIMARY KEY ("jobNameU")
);

有一个更好的解决方案,使用 BEFORE INSERT 触发器,无需额外生成的列即可工作:

CREATE TABLE IF NOT EXISTS  "job" (
"id" INTEGER IDENTITY,
"jobId" BIGINT ,
"jobName" VARCHAR(100) ,
PRIMARY KEY ("jobName")
);

CREATE TRIGGER makeUpper BEFORE INSERT ON "job" REFERENCING NEW ROW AS NEW
FOR EACH ROW
SET NEW."jobName" = UPPER(NEW."jobName")

关于mysql - HSQL 中的大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50824078/

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