【发布时间】:2015-11-06 02:00:56
【问题描述】:
我已经尝试过了,但我收到了一个错误:
SQLCODE = -104,错误:非法符号“'T'”。一些可能的符号 合法的是:定位器安全
CREATE TABLE STUDENT_REGISTER
(
SNO INT NOT NULL ,
STUDENT_ID AS 'T'+CAST( SNO AS VARCHAR(10))
PERSISTED PRIMARY KEY,
FIRST_NAME VARCHAR(20),
LAST_NAME VARCHAR(20),
DATE_OF_BIRTH DATE,
ADDRESS VARCHAR(100),
MOBILE_NO BIGINT
)
【问题讨论】:
-
如果我运行您的代码,即 concat 语句,它返回 SQLCODE = -199,错误:非法使用关键字 CONCAT。预计令牌定位器安全
-
ifi 使用 'as' 运行 sqlcode=-104 返回
-
你可以试试
STUDENT_ID VARCHAR(10) WITH DEFAULT 'T'+SNO。如果不采用+进行拼接,可以尝试使用|| -
你为什么在号码前加上
T?我担心你会把它用作多部分键(这是不赞成的)。理想情况下,您可能应该为主键设置一个常规整数(autogen)列,然后为任何“已发布”id 设置一个额外的唯一键列;这不应该反映实际的数据库内部(主)键。除此之外,如果您最终有足够的学生,那么更改外部可见的 id 会变得更加容易......