INSERT INTO:是否有插入重复值的简写?

时间:2014-01-26 00:59:58

标签: sql sql-insert shorthand

我有一个跟随INSERT查询,我想知道是否可以组合两个具有相同值的列? 是的,我必须使用它们中的两个以便将来改变。

insert into `products`
set
`name` = 'y',
`time` = 'x',
`time2` = 'x';

从逻辑上思考,伪代码time, time2 = 'x'应该以某种方式工作,但事实并非如此。 感谢。

2 个答案:

答案 0 :(得分:0)

您使用的语法不是insert的标准语法。我相信它是MySQL的特殊语法。

以下是一种方法:

insert into `products`(name, time, time2)
    select 'y', 'x', 'x';

如果您在MySQL中执行此操作并输入此内容,则可以执行以下操作:

insert into `products`(name, time, time2)
    select 'y', val, val
    from (select 'x' as val) t;

当然,在这种情况下,这不会保存任何输入。

答案 1 :(得分:0)

不,您必须为每列单独指定一个值。

我可以为您的案例提供的唯一建议是编写触发器,将time列的值复制到time2。但是,除非你经常这样做,否则为这种情况写一个触发器可能是不值得的。