【问题标题】:Create a column in a table that matches a specific pattern在表中创建与特定模式匹配的列
【发布时间】:2016-04-14 03:07:42
【问题描述】:

嗨,我是 pl/sql 的初学者,我尝试创建一个表,该表的列应匹配由五个字符串组成的模式,前两个字符是字母,其他三个是数字,没有 @987654321 @ 并且不要从零开始。 我已经尝试了 alter table modify 选项,但我得到一个错误,我想要做的不是 ALTER TABLE 选项

CREATE TABLE my_course
(my_course_firstyear VARCHAR2(2),
my_course_secondyear NUMBER(10) NOT NULL,
my_course_final VARCHAR2(10)); 

ALTER TABLE my_course
modify
my_course_final VARCHAR2(20),
my_course_secondyear || mycoursefinal);

当然这不起作用,但是当列是字母和数字的组合时,我只是不知道如何设置约束。

感谢您在这方面的帮助。

【问题讨论】:

    标签: sql oracle create-table


    【解决方案1】:

    根据您在第一段中的描述,您想要的约束是检查约束。您可以使用正则表达式进行设置:

    alter table my_course add constraint chk_column
        check (regexp_like(column, '^[a-zA-Z]{2}[1-9][0-9][0-9]$'));
    

    约束也可以包含在create table 语句中。

    请注意,如果该列将包含五个字符,则应将其声明为 CHAR(5)

    我不确定代码与问题描述有什么关系。

    【讨论】:

      猜你喜欢
      • 2014-12-31
      • 2010-10-05
      • 2021-08-03
      • 1970-01-01
      • 2018-05-12
      • 2021-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多