【问题标题】:INSERT in a single column, the rest of the column will have a default value在单个列中插入,该列的其余部分将具有默认值
【发布时间】:2013-09-18 05:12:14
【问题描述】:

单列插入值后如何在所有列中插入默认值,

示例:我创建了一个product 表,列是id (autoincrement)product_nameitem

CREATE TABLE product
(
    id int AUTOINCREMENT,
    product_name varchar(255),
    item int
);

如何仅插入 product_name 并让项目自动填充值 30

insert into 
    product 
values (
    'burger'
)

结果是

id: product_name:  item: 
7   burger         30

【问题讨论】:

  • stackoverflow.com/questions/11801911/… 的副本。请在提问前使用搜索功能。这很容易在 Stack Overflow 和其他互联网上找到。
  • @JonathonReinhart 这根本不是那个的副本。他没有要求插入多行。
  • @JonathonReinhart 我同意 Fluffeh 的观点;我不明白这是怎么复制的。'
  • 好的,但它显示了如何插入单个列。这不是重点吗?
  • @Jonathon Reinhart,我的意思是在您创建表之后,如果我只插入单行,其他行应该有一个默认值。

标签: mysql sql


【解决方案1】:

为项目设置默认值:

CREATE TABLE product ( id int AUTOINCREMENT, product_name varchar(255), item int DEFAULT 30);

【讨论】:

  • 所以每次我插入一个新的产品名称时,使用 DEFAULT 函数会使 item 的值为 30?
  • 如果您不为此列设置值,则会插入默认值
【解决方案2】:
CREATE TABLE product ( id int AUTOINCREMENT, product_name varchar(255), item int );

在 mssql 服务器中使用以下查询:

ALTER TABLE product
ADD item int

CONSTRAINT DF_TestTable_NewCol DEFAULT 30 not null
GO

【讨论】:

  • 该标签特别要求 MySQL :(
【解决方案3】:

如果您的表有默认值或增量值,您可以使用以下任一语法插入数据并让它自动填充其余部分:

CREATE TABLE product
(
id int AUTOINCREMENT,
product_name varchar(255),
item int
);

您有一个自动 ID 值,但没有为其他两个设置默认值:

insert into product (product_name, item) values ('Burger', 30);

insert into product values(null, 'Burger', 30)

现在,如果您将表格设置为具有 @cha 建议的默认列,您可以输入更少的信息:

CREATE TABLE product
(
id int AUTOINCREMENT,
product_name varchar(255),
item int default 30
);

允许您:

insert into product (product_name) values ('Burger');

insert into product values(null, 'Burger', null)

【讨论】:

    【解决方案4】:

    通过 phpMyAdmin,转到表的结构,单击项目列的更改。您可以通过选择“As defined:”并输入值来设置默认值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-19
      • 1970-01-01
      • 2020-11-28
      • 2017-03-14
      • 2017-06-17
      • 2012-06-24
      • 2020-08-20
      • 2019-09-19
      相关资源
      最近更新 更多