sql - DEFAULT 约束在 SQL Oracle 中不起作用?

标签 sql oracle constraints

我试图获得一个约束(这只是测试代码),但是当我添加数据(完成整个表)并在值中省略 Apptime 数据的情况下运行它时,它不会默认为 hello表中只有“-”。我正在使用 Oracle Live SQL。关于这是如何完成的有任何线索吗?如果我可以在架构中而不是约束中做到这一点,那就太好了,但如果它必须是外部的约束,那也没关系。

谢谢你,如果我在这个问题上做错了什么,我很抱歉,我是新人,哈哈。

    DROP TABLE Bok;

    CREATE TABLE Bok (
    BokID number(3) NOT NULL PRIMARY KEY,
    Appdate varchar2(4),
    Apptime varchar2(5) DEFAULT 'hello'
     );

    
 

最佳答案

为了默认工作,插入查询必须使用DEFAULT关键字或跳过该列

INSERT INTO Bok(BokID, Appdate, appTime)
VALUES (1, 'a', DEFAULT);

INSERT INTO Bok(BokID, Appdate)
VALUES (1, 'a');

DEFAULT ON NULL 时,还有一个选择定义为:

CREATE TABLE Bok (
    BokID number(3) NOT NULL PRIMARY KEY,
    Appdate varchar2(4),
    Apptime varchar2(5)  DEFAULT ON NULL  'hello'
 );

INSERT INTO Bok(BokID, Appdate, appTime)
VALUES (1, 'a', NULL);

关于sql - DEFAULT 约束在 SQL Oracle 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65314450/

相关文章:

mysql - bash 从 bash 命令更新 mysql

oracle - "data manipulation operation not legal on this view"在用户表中发生

mysql - 如何将此 MS SQL 脚本重写为 MySQL 脚本?

tensorflow - 将神经网络的输出限制在任意范围内

SQL != ALL() 难度

mysql - 将 SQL 结果格式化为数组;按键访问?

sql - 优化 SQL Server 聚合查询

mysql - 在 MySQL 中添加可变数组 (VARRAY)

oracle - 如何在Toad中调试存储过程?

sql - 无冗余获取SQL Server的约束列表