我是SQL的新手,我试图在我的表中放置有两个外键的值。
CREATE TABLE ROOM
(
ROOM_NAME VARCHAR2(40 BYTE)
, PATIENT_ID NUMBER
, DOC_NAME VARCHAR2(50 BYTE)
)
LOGGING
TABLESPACE USERS
PCTFREE 10
INITRANS 1
STORAGE
(
INITIAL 65536
NEXT 1048576
MINEXTENTS 1
MAXEXTENTS UNLIMITED
BUFFER_POOL DEFAULT
)
NOPARALLEL;
ALTER TABLE ROOM
ADD CONSTRAINT DOC_ROOM FOREIGN KEY (DOC_NAME)
REFERENCES DOCTOR(DOC_NAME) ENABLE;
ALTER TABLE ROOM
ADD CONSTRAINT PATIENT_ROOM FOREIGN KEY (PATIENT_ID)
REFERENCES RECORD(ID) ENABLE;
使用 SQL Developer 中的左侧面板创建。如你所见,我有两个外键。我不知道如何为列Patient_ID
和Doc_Name
添加值。
到目前为止,我所做的只是逐个插入表中,但这导致了三个不同的行。
我得到了什么:
ROOM_NAME | PATIENT_ID | DOC_NAME
---------------------------------------
Emergency Room | NULL | NULL
NULL | 1 | NULL
NULL | NULL | Dr. John
我想要的是什么:
ROOM_NAME | PATIENT_ID | DOC_NAME
---------------------------------------
Emergency Room | 1 | Dr. John
答案 0 :(得分:0)
_.debounce = function(func, wait, immediate) {
var timeout, args, context, timestamp, result;
var later = function() {
var last = (Date.now || new Date().getTime()) - timestamp;
if (last < wait && last >= 0) {
timeout = setTimeout(later, wait - last);
} else {
timeout = null;
if (!immediate) {
result = func.apply(context, args);
if (!timeout) context = args = null;
}
}
};
return function() {
context = this;
args = arguments;
timestamp = _.now();
var callNow = immediate && !timeout;
if (!timeout) timeout = setTimeout(later, wait);
if (callNow) {
result = func.apply(context, args);
context = args = null;
}
return result;
};
};
将始终创建一个新行(除非违反某些约束)。
要一次插入包含所有值的行,请使用:
insert
如果要更改现有行,则需要使用UPDATE
语句,例如:
insert into room
(ROOM_NAME, PATIENT_ID, DOC_NAME)
values
('Emergency Room', 1, 'Dr. John');
您的update room
set doc_name = 'Dr. House'
where room_name = 'Emergency Room'
and patient_id = 1;
表缺少主键,您应该添加一个唯一标识此表中行的内容。
答案 1 :(得分:-1)
没关系。看到另一个问题的答案。
insert into room values ('EmergencyRoom', (Select id from record where id = 1), (select doc_name from DOCTOR where doc_name = 'Dr. John'))