1

「学生」と「インストラクター」という 2 つの MySQL INNODB テーブルがあります。それらはほぼすべての点で類似しています。「学生」テーブルには任意のレコードを追加できますが、「インストラクター」テーブルには追加できません。どちらのテーブルも、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