有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java插入具有两个键值的表

我正在使用Postgres和java从一个数据库中编写文件。将csv转换为数据库。在我的CREATE TABLE stmnts中,我有一个存储两个键的表。我想插入这些。我现在有一个子查询,但我总是得到ckey的空值,所以语法一定是错误的。插入不起作用。错误:关系“gamesin”的“ckey”列中的null值违反了not null约束。从我创建的列表中得到的另一个值。我用的是事先准备好的声明。感谢帮助

CREATE TABLE Games(
  Year INT PRIMARY KEY,
  Name VARCHAR(32) NOT NULL,
    StartDate Date NOT NULL,
  EndDate Date NOT NULL
);

CREATE TABLE Cities(
  CKey SERIAL PRIMARY KEY,
  Name VARCHAR(128) UNIQUE NOT NULL,
  Noc CHAR(3) REFERENCES Countries NOT NULL
);

CREATE TABLE GamesIn(
  Year INT REFERENCES Games,
  CKey INT REFERENCES Cities,
  PRIMARY KEY(Year, CKey)
);
String sql = "INSERT INTO gamesin (year, ckey) VALUES (?, (SELECT ckey from cities WHERE cities.name = '\" + name + \"'))";

共 (0) 个答案