在列号中插入数据库

时间:2013-08-23 15:33:50

标签: mysql sql

我想使用列顺序而不是名称

插入表中
insert into tableName(1,2,5) values('val1','val2','val3');

我不想使用

insert into tableName values('val1','val2','val3');

因为该表不包含3列

我该怎么做

因为列名是加密的所以我不能依赖这个

insert into  tableX("cCGSvKJVQXnt8A==","aDOlOQrPfg==","qsdcx112")
values('val1','val2','val3');

有什么想法我怎么处理这个

谢谢

2 个答案:

答案 0 :(得分:2)

您不能在insert语句中使用列的序号。但是,您可以使用列名完成您要执行的操作(将值插入表中的特定列)。

假设你的桌子有五列;我打算称他们为“Alpha”,“Bravo”,“Charlie”,“Delta”和“Echo”,因为你没有给我们你的桌子的架构,而是用这些名字替换这些名字。列实际上在你的表中。我猜你的第三和第四列(我的“查理”和“三角洲”)可以为空。然后,您可以在表中插入元组/行,其他三列使用如下语法填充:

INSERT INTO TableName(Alpha, Bravo, Echo) VALUES ("val1", "val2", "val3");

根据上面的评论,如果您的列名是不可打印的字符(这是一个非常糟糕的可怕的想法),您可以在缺少的列中显式插入NULL:

INSERT INTO TableName VALUES ("val1", "val2", NULL, NULL, "val3");

但是这里的弱点是,如果随后将其他列添加到表的模式中,则insert语句将开始失败。

答案 1 :(得分:1)

您需要将列名称放在1,2,5的位置。您不能使用列号。

insert into tableName(1,2,5) values("val1","val2","val3");