我看到一个程序中有一段代码:insert into mytable values(?, ?, ?, ?, ?)。
其中表中id是自增字段,但values中并没有id的值,这个例子程序用的数据库是SQL Server 2000。
我现在用的是PostgreSQL数据库,id字段设为serial类型,
运行时会出错,因为它把values中的第一个值赋给了id,而第一个值的类型是varchar。我想问下,用PostgreSQL能不能实现这种操作,还是SQL Server 2000中的这个操作是错误的?
谢谢!
其中表中id是自增字段,但values中并没有id的值,这个例子程序用的数据库是SQL Server 2000。
我现在用的是PostgreSQL数据库,id字段设为serial类型,
运行时会出错,因为它把values中的第一个值赋给了id,而第一个值的类型是varchar。我想问下,用PostgreSQL能不能实现这种操作,还是SQL Server 2000中的这个操作是错误的?
谢谢!
insert into mytable(列名) values(?, ?, ?, ?, ?)
我知道加列名可以,但如果列比较多的话就又要写好多的代码。
我看到这个程序可以不用加列名就可以实现,不知道在PostgreSQL中行不行。
但在postgresql中可以,所以给id赋default可以确保自增字段的正确赋值
我将id的default值设为1,可还是不行,还是提示“...”不是Integer。
比如id字段在第一个,就这样写:
insert into mytable values(default, ?, ?, ?, ?, ?)
在MSSQL你填5个字段,可以通过,Postgresql就不行了。
是这样的吧。那你就:
insert into mytable values (DEFAULT,?, ?, ?, ?, ?)。