如果你有桌子:
CREATE TABLE Book
(
Resource_ID INT
GENERATED ALWAYS AS IDENTITY
CONSTRAINT book__rid__pk PRIMARY KEY,
Title VARCHAR2(40) NOT NULL,
Loan_Period int NOT NULL,
noTimesLoaned int NOT NULL
);
CREATE TABLE Loan (
Loan_No INT
GENERATED ALWAYS AS IDENTITY
CONSTRAINT load__ln__pk PRIMARY KEY,
Loan_Date DATE NOT NULL,
Return_Date DATE,
Resource_ID CONSTRAINT loan__rid__fk REFERENCES book
NOT NULL
);
然后你可以创建一本书:
INSERT INTO book(title, loan_period, notimesloaned)
VALUES ('ABC', 14, 0);
然后您可以使用INSERT INTO Loan (...) SELECT ... FROM book ... 将正确的书籍详细信息传输到loan 表中:
INSERT INTO loan (loan_date, return_date, resource_id)
SELECT TRUNC(SYSDATE),
TRUNC(SYSDATE) + loan_period,
resource_id
FROM book
WHERE resource_id = 1
然后:
SELECT * FROM loan;
输出:
| LOAN_NO |
LOAN_DATE |
RETURN_DATE |
RESOURCE_ID |
| 1 |
2021-12-15 00:00:00 |
2021-12-29 00:00:00 |
1 |
注意:Book 表中不应有 noTimesLoaned 列;如果您想获得该信息,则应使用COUNT(*) 查询Loan 表(可能在视图中)生成它。
db小提琴here