create procedure init()
BEGIN
DROP TABLE IF EXISTS Table_Stanging;
DROP TABLE IF EXISTS Visits;
DROP TABLE IF EXISTS Offices;
DROP TABLE IF EXISTS Patiens;
DROP TABLE IF EXISTS Medics;
CREATE TABLE Medics(
Name varchar(50),
Surname varchar(50),
Type VARCHAR(50),
Speciality varchar(50))
engine InnoDB;
CREATE TABLE Patiens(
Name varchar(50),
Surname varchar(50))
ENGINE InnoDB;
CREATE TABLE Offices(
Name varchar(50))
ENGINE InnoDB;
CREATE TABLE Visits(DateHour datetime,
Medics INT NOT NULL,
Patiens INT NOT NULL,
Offices INT NOT NULL)
ENGINE InnoDB;
CREATE TABLE Table_Stanging(
DateVisit VARCHAR(50),
HourVisit TIME,
PatientName varchar(50),
PacientSurname varchar(50),
MedicName varchar(50),
MedicSurname varchar(50),
Office varchar(50));
ALTER TABLE Medics ADD unique(Name, Surname);
ALTER TABLE Patients ADD UNIQUE(Name,Surname);
ALTER TABLE Offices ADD UNIQUE(Name);
ALTER TABLE Medics ADD COLUMN IDMed INT NOT NULL PRIMARY KEY AUTO_INCREMENT;
ALTER TABLE Patients add COLUMN IDPat INT NOT NULL PRIMARY KEY AUTO_INCREMENT;
ALTER TABLE Offices add COLUMN IDOff INT NOT NULL PRIMARY KEY AUTO_INCREMENT;
ALTER TABLE Visits ADD COLUMN IDVis INT NOT NULL PRIMARY KEY AUTO_INCREMENT;
ALTER TABLE Visits add constraint fk_Medics foreign key(Medics)
REFERENCES Medics(IDMed);
ALTER TABLE Visits add constraint fk_Patients foreign key(Patients)
参考患者(IDPat);
ALTER TABLE Visits add constraint fk_Offices foreign key(Offices)
参考办公室(IDOff);
END$
句子是:主要填充表 - 访问,患者和办公室 - 使用触发器自动完成,将数据导入临时表。当您插入新记录并执行以下操作时,触发器附加的临时表会自动运行: - 调用格式化正确日期的函数(小心!登台表上的列必须定义为varchar,否则NEW.data将为0000-00 - 00!)。它接收两个字符串作为参数(时间和日期的格式,它们出现在文件中,例如:22/04 / 2005,01:52:34,并返回一个DATETIME类型的值,表示日期+时间)访问,因为它应该出现在表格访问; -add适当记录表和机柜中的患者,在表中使用LAST_INSERT_ID()或添加SELECT导致外键值; - 使用先前计算的值访问表格。