Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在数据库中插入列号_Mysql_Sql - Fatal编程技术网

Mysql 在数据库中插入列号

Mysql 在数据库中插入列号,mysql,sql,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'

我想使用列顺序而不是名称在表中插入

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');
你知道我该怎么处理吗


谢谢

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

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

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

假设您的表有五列;我将把它们称为“Alpha”、“Bravo”、“Charlie”、“Delta”和“Echo”,因为您没有为我们提供表的模式,而是将这些名称替换为表中实际列的名称。我猜您的第三列和第四列(我的“Charlie”和“Delta”)可以为空。然后,您可以在表中插入一个元组/行,并使用如下语法填充其他三列:

INSERT INTO TableName(Alpha, Bravo, Echo) VALUES ("val1", "val2", "val3");
如果根据上面的注释,列名是不可打印的字符(这是一个非常糟糕的想法),则可以在缺少的列中显式插入空值:

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

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

您的问题是什么?问题是我该如何做?为什么不能使用列名?实际上,没有稳定的列“number”这样的东西。绝对应该使用字段名。即使您可以按列号指定,这也是一个可怕的设计决策,因为如果您更改了架构以添加新列,那么您可能需要更新代码。等等,为什么表名是不可打印的字符?这是一个糟糕的设计决定。有更好的方法可以保护数据库架构不被发现。列的名称是加密的,因此我无法确定已具有默认值的列会发生什么情况。它们将为null。您可以使用default关键字显式指定列的默认值。