2013-08-23 123 views
-3

我想使用列的表中插入顺序没有名字插入数据库与列数

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

我不想使用

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

,因为表不包含仅有3列

我该怎么办

因为列名被加密所以我不能依靠th是

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

有任何想法我怎么能解决这个问题

感谢

+3

你的问题是什么? – schoash

+0

问题是我该怎么办 – user1825286

+0

为什么不叫名? INSERT INTO表(名字,姓氏,年龄)'更具可读性。 – Jim

回答

2

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

假设你的表有五列;我会称它们为“Alpha”,“Bravo”,“Charlie”,“Delta”和“Echo”,因为您没有为我们提供表格架构,而是将这些名称替换为列实际上在你的表中。我猜你的第三和第四列(我的“查理”和“三角洲”)是可以空的。然后您可以在表中插入一个元组/行使用的语法像这样充满了其他三列:

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

如果按您的上述评论,列名是不可打印的字符(这是一个可怕的,可怕想法),你可以明确地插入空值到缺少的列:

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

但这里的弱点是,如果其他列随后添加到您的表的模式,插入语句将启动失败。

+0

因此,如果列已具有默认值,它们将为空 – user1825286

+1

您可以使用DEFAULT关键字明确指定列的默认值。 –

+1

谢谢你,愿真主保佑你 – user1825286

1

你需要把你准备好的1,2,5列名。您不能使用列号。

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

列的名称已加密,所以我不能 – user1825286