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