创建表时“关系中缺少列”

2023-12-27

我尝试创建三个表(CUSTOMERS、VEHICLES 和 RENTALS),第三个表(RENTALS)的外键引用前两个表(CUSTOMERS 和 RENTALS)的两个主键。创建第三个表时出现错误关系中缺少列(Rel=CUSTOMERS[[]] -> RENTALS[[]])

这是我的代码

     private void createTables() throws SQLException {
        Statement statement = conn.createStatement();
        statement.executeUpdate("CREATE TABLE CUSTOMERS(custNumber AUTOINCREMENT PRIMARY KEY, " +
            "firstName VARCHAR(155) NOT NULL, surname VARCHAR(155) NOT NULL, idNum INTEGER NOT NULL, phoneNum INTEGER NOT NULL, canRent BIT NOT NULL)");
        statement.executeUpdate("CREATE TABLE VEHICLES(vehNumber AUTOINCREMENT PRIMARY KEY, make VARCHAR(155) NOT NULL, " +
            "category VARCHAR(155) NOT NULL, rentalPrice FLOAT NOT NULL, availableForRent BIT NOT NULL)");
        statement.executeUpdate("CREATE TABLE RENTALS(rentalNumber AUTOINCREMENT PRIMARY KEY, dateRental VARCHAR(155) NOT NULL, dateReturned VARCHAR(155) NOT NULL, " +
            "pricePerDay FLOAT NOT NULL, totalRental FLOAT NOT NULL, custNumber INTEGER FOREIGN KEY REFERENCES CUSTOMERS(custNumber), " +
            "vehNumber INTEGER FOREIGN KEY REFERENCES VEHICLES(vehNumber))");

        System.out.println("Database populated");
     }

and here's the error enter image description here

非常感谢您的帮助,我环顾四周但没有发现任何帮助。


在 Access 中,自动编号字段 (DDL:AUTOINCREMENT or COUNTER) 是一个“长整数”。

在 UCanAccess DDL 中,INTEGER创建一个“整数”(16 位)字段并LONG创建一个“长整型”(32 位)字段。

您需要将外键列声明为LONG, not INTEGER.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建表时“关系中缺少列” 的相关文章

随机推荐