1

我有两个 MySQL INNODB 表 'student' 和 'instructor'。它们几乎在每一个方面都是相似的。我可以将任意记录添加到“学生”表中,但不能添加到“教师”表中。两个表具有相同的结构,以 ID 作为主键。

(ID varchar、name varchar、dept_name、varchar、field4 int)

我尝试过诸如

INSERT INTO instructor VALUES ('12345', 'name', 'computer science', 50000);
INSERT INTO instructor SET ID = 67890, name = 'Polson', dept_name = 'Bioinformatics', salary = 100 ON DUPLICATE KEY SET name = 'Polson', dept_name = 'Bioinformatics', salary = 100;    
INSERT INTO instructor (ID) VALUES ('12345');
INSERT INTO instructor (ID) VALUE ('12345');

而所有这些查询都适用于“学生”表。到底是怎么回事?

这是我的创建表语句。我的用户拥有完全权限。我应该使用任何状态查询来查找问题吗?谢谢!

CREATE TABLE `instructor` (
  `ID` varchar(5) NOT NULL DEFAULT '',
  `name` varchar(20) DEFAULT NULL,
  `dept_name` varchar(25) DEFAULT NULL,
  `salary` decimal(10,2) DEFAULT NULL,
  PRIMARY KEY (`ID`),
  KEY `dept_name` (`dept_name`),
  CONSTRAINT `instructor_ibfk_1` FOREIGN KEY (`dept_name`) REFERENCES `department` (`dept_name`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1

CREATE TABLE `student` (
  `ID` varchar(10) NOT NULL DEFAULT '',
  `name` varchar(20) DEFAULT NULL,
  `dept_name` varchar(25) DEFAULT NULL,
  `total_credits` int(11) DEFAULT NULL,
  PRIMARY KEY (`ID`),
  KEY `dept_name` (`dept_name`),
  CONSTRAINT `student_ibfk_1` FOREIGN KEY (`dept_name`) REFERENCES `department` (`dept_name`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1

CREATE TABLE department ( 
 dept_name varchar(25) NOT NULL DEFAULT '',
 building varchar(15) DEFAULT NULL,
 budget float(12,2) DEFAULT NULL, 
 PRIMARY KEY (dept_name) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 

其中包含一个记录 Bioinformatics | DBI | 1000000.00

4

0 回答 0