如何插入table1,如:INSERT INTO table1 (description) VALUES ('Some test description here');
并让它返回自动递增的ID,以便我可以在table2中插入一行?描述不保证是唯一的。我使用Java PreparedStatement
插入当前使用execute()
我有以下表结构:
CREATE TABLE table1 (
table1ID INTEGER NOT NULL AUTO_INCREMENT,
description VARCHAR(255) NOT NULL,
CONSTRAINT PK_table1 PRIMARY KEY (table1ID)
);
CREATE TABLE table2 (
table1ID INTEGER NOT NULL,
personID INTEGER NOT NULL,
CONSTRAINT PK_table2 PRIMARY KEY (table1ID, personID)
);
ALTER TABLE table2 ADD CONSTRAINT FK_table1_table2
FOREIGN KEY (table1ID) REFERENCES table1 (table1ID);
ALTER TABLE table2 ADD CONSTRAINT FK_table2_person
FOREIGN KEY (personID) REFERENCES person (personID);
答案 0 :(得分:3)
在插入成功完成后立即运行此查询:SELECT LAST_INSERT_ID()
答案 1 :(得分:3)
试试这个:
PreparedStatement st = con.prepareStatement(
"Insert into table1 (name) values ('test desc')",
Statement.RETURN_GENERATED_KEYS);
st.executeUpdate();
ResultSet rs = st.getGeneratedKeys();
if(rs.next())
{
int data = rs.getRow();
int id = rs.getInt(1);
}
观察数据的价值&标识。
你不需要点燃插入物和单独选择查询。