Mysql SQL查询添加默认值

Mysql SQL查询添加默认值,mysql,sql,bash,Mysql,Sql,Bash,我有一个SQL查询,它将+1000条记录加载到一个表中。我们添加了一个新字段来区分某个值,我需要将其添加到查询中。是否有任何命令可以自动执行该过程?它将在所有插入的末尾添加一个默认值 更新:该字段已具有默认值0。带有这些插入的查询必须将该字段指定为1。我需要一种将默认值添加到这些特定插入的方法 Update2:查询类型是插入xx(xx,xx,x,x,x,x,x)值(x,x,x,x),(x,xx,x,x,x),在末尾添加新值 更新3:答案无效,因为我有1000多个插入,我无法手动添加该字段您可以在

我有一个SQL查询,它将+1000条记录加载到一个表中。我们添加了一个新字段来区分某个值,我需要将其添加到查询中。是否有任何命令可以自动执行该过程?它将在所有插入的末尾添加一个默认值

更新:该字段已具有默认值0。带有这些插入的查询必须将该字段指定为1。我需要一种将默认值添加到这些特定插入的方法

Update2:查询类型是插入xx(xx,xx,x,x,x,x,x)值(x,x,x,x),(x,xx,x,x,x),在末尾添加新值


更新3:答案无效,因为我有1000多个插入,我无法手动添加该字段

您可以在表中为该列设置“默认”值。 如果是布尔表达式,请将默认表达式设置为False或True。同样适用于字符、整数或时间戳

但是,如果出于某种原因只想通过查询进行设置,只需将该值添加到查询中即可。为什么不呢

查询示例:

    INSERT INTO tab(c1,c2,...descriminate_column) VALUES(v1,v2,...FALSE)

根据您更新的问题进行更新:

正如我从您的更新中了解到的,您有一个默认为False的布尔列,您希望仅为循环中的某些插入将该列设置为True,并且希望为所有查询包含列名。 如果是这种情况,可以使用以下查询插入默认值:

INSERT INTO tab(c1, c2, c3, c4, discriminate_column) VALUES(204, 'test', '1.2.2.3', 'today', default)
更新2:

插入xx(xx,xx,x,x,x,x)值(x,x,x,x),(x,xx,x,x,x)

提及的列数和值数应始终相等。如果要保留某些查询的默认值,请为该插入设置
default

插入xx(xx,xx,x,x,x,x)值(x,x,x,x,默认值),(x,xx,x,x,x)


如果是
插入…请选择

insert into MyTable (col1, col2, ..., thenewcolumn)
select column1, column2, ..., 1
from somewhere
如果是常规插入,只需将
1
放入值:

insert into MyTable (col1, col2, ..., thenewcolumn)
values
(12, 'abc',...,1)

您可以在插入之前或之后更改默认值:

alter table t alter col set default = 1;
然后将其更改回原来的位置或在以后将其删除:

alter table t alter col set default = 0;
alter table t alter col drop default;

您不必修改
insert
语句,除非该列已经是它们的一部分(因为显式值将覆盖默认值)。

您可以为新列指定默认值。
自动执行该过程。
=>您在这里的意思是什么?我有一个SQL查询,它将+1000条记录加载到一个表中。什么类型的查询?加载数据填充?插入选择还有什么吗?更新问题需要问题中的明确信息。但我如何自动化该过程,以便将默认值添加到查询中的所有插入内容中。这就是价值观​​(x,x,x),(x,x,x),(x,x,x),(x,x,x),(x,x,x)等n次,我必须在末尾添加所述字段。这不是一个单一的插入,而是我已经在一个文件中生成的1000个插入。@Diego我知道这个问题已经很久了,但是我可以知道这个问题发生了什么吗?老实说,我没有完全理解这个问题。
alter table t alter col set default = 1;
alter table t alter col set default = 0;
alter table t alter col drop default;