• 4.2 插入默认值


    问题:

    定义表时可以为某些列定义默认值,现要以默认值插入一行,而无需指定各列的值。看一下下面列出的表:

    create table D (id interger default 0)

    要插入零值,而不像在insert语句的值列表中明确得为该行指定0值,这里明确的要求插入默认值,而不管默认值是什么。

    解决方案;

    所有数据库系统都支持使用default关键字显示的指定某列插入默认值,有些数据库系统还有其他的方法来解决这个问题。

    下面的例子说明了使用default关键字来解决这个问题的方法:

    insert into D values (default)


    当不需要将表中所有列都插入值时,也可以明确的指定要使用默认值的列名称

    insert into D(id) values(default)


    讨论:

    在值列表中的default关键字为相应列插入默认值,默认值在创建表时定义,所有的dbms中都可以使用此关键字。

    如果表的每列都定义了默认值(表D就是这种情况),MySQL 也可以使用其他的方法。例如,可以使用空Values列表来用默认值创建行;否则,就需要对表中的每一行指定default

    如果一个表部分列有默认值,部分列没有默认值,要向某列中插入默认值只要将该列排除在插入列表之外,都不需要使用default关键字,假设表D有另外一列没有定义默认值:

    create  table D (id integer default 0, foo varchar(10))


    在插入列表中只猎虎foo字段,id中就可以插入默认值:

    insert into D (name) values ('Bar')
    使用上述语句的结果是FOO字段值为“Bar”而id字段的值为“0”。ID字段的值为0是因为没有对其指定其他值。

  • 相关阅读:
    [LeetCode] Repeated DNA Sequences hash map
    [LeetCode] Largest Number 排序
    [LeetCode] Convert Sorted Array to Binary Search Tree
    [LeetCode] Populating Next Right Pointers in Each Node 深度搜索
    [LeetCode] Binary Search Tree Iterator 深度搜索
    [LeetCode] Best Time to Buy and Sell Stock II 贪心算法
    [LeetCode] Find Peak Element 二分搜索
    [LeetCode] 3Sum Closest
    [LeetCode] Gas Station 贪心
    [LeetCode] Number of 1 Bits 位操作
  • 原文地址:https://www.cnblogs.com/liang545621/p/7518745.html
Copyright © 2020-2023  润新知