我有一个表的主键在其他几个表中使用,并有几个外键到其他表。 CREATE TABLE location ( locationID INT NOT NULL AUTO_INCREMENT PRIMARY KEY … ) ENGINE = InnoDB; CREATE TABLE assignment ( assignmentID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, locationID INT NOT NULL, FOREIGN KEY locationIDX (locationID) REFERENCES location (locationID) … ) ENGINE = InnoDB; CREATE TABLE assignmentStuff ( … assignmentID INT NOT NULL, FOREIGN KEY […]
例如,我有一个表有多个ID列到其他表。 我只想要一个外键强制完整性,只要我把数据放在那里。 如果我稍后做一个更新来填充该列,那么它仍然会检查约束(这可能是数据库服务器的依赖,我使用MySQL和InnoDB表types)。 我相信这是一个合理的期望,但如果我错了,请纠正我。
如何find特定列上的所有外键依赖关系? 有什么不同的select(SSMS中的graphics,SQL Server中的查询/视图,第三方数据库工具,.NET代码)?
在Oracle SQL Developer中 ,如果我查看表中的信息,我可以查看约束,这可以让我看到外键(以及由此表引用哪些表),并且可以查看依赖关系以查看包和这样的参考表。 但我不知道如何find哪些表引用表。 例如,我正在查看emp表。 还有另外一个表emp_dept ,用于捕获哪些员工在哪个部门工作,哪些部门通过emp_id ( emp表的主键)引用emp表。 有没有办法(通过程序中的一些UI元素,而不是通过SQL)发现emp_dept表引用emp表,而我不必知道emp_dept表存在?
请为我澄清两件事情: 外键可以是NULL吗? 外键可以重复吗? 就我所知, NULL不应该用在外键上,但在我的一些应用程序中,我可以在Oracle和SQL Server中inputNULL ,我不知道为什么。
我有表格,我已经尝试设置PK FK关系,但我想validation这一点。 我如何显示PK / FK限制? 我看到了这个手册页,但没有显示例子,我的谷歌search也没有结果。 我的数据库是凭证1,我的受约束的表是实践和cred_insurances。
所以我试图将外键约束添加到我的数据库作为项目要求,它在不同的表上第一次或第二次工作,但我有两个表,当我试图添加外键约束时,我得到一个错误。 我得到的错误信息是: 错误1215(HY000):无法添加外键约束 这是我用来创build表的SQL,两个违规表是Patient和Appointment 。 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=1; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; CREATE SCHEMA IF NOT EXISTS `doctorsoffice` DEFAULT CHARACTER SET utf8 ; USE `doctorsoffice` ; — —————————————————– — Table `doctorsoffice`.`doctor` — —————————————————– DROP TABLE IF EXISTS `doctorsoffice`.`doctor` ; CREATE TABLE IF NOT EXISTS `doctorsoffice`.`doctor` ( `DoctorID` INT(11) NOT NULL AUTO_INCREMENT , `FName` […]
我想从我的表中删除约束。 我的查询是: ALTER TABLE `tbl_magazine_issue` DROP CONSTRAINT `FK_tbl_magazine_issue_mst_users` 但是我得到一个错误: #1064 – 你的SQL语法错误; 检查与您的MySQL服务器版本相对应的手册,在第1行的“约束FK_tbl_magazine_issue_mst_users ”附近使用正确的语法
我有一个表的主键在其他几个表中作为外键引用。 例如: CREATE TABLE `X` ( `X_id` int NOT NULL auto_increment, `name` varchar(255) NOT NULL, PRIMARY KEY (`X_id`) ) CREATE TABLE `Y` ( `Y_id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `X_id` int DEFAULT NULL, PRIMARY KEY (`Y_id`), CONSTRAINT `Y_X` FOREIGN KEY (`X_id`) REFERENCES `X` (`X_id`) ) CREATE TABLE `Z` ( `Z_id` int(11) NOT […]
有没有一个简单的方法来删除MySQL数据库中的所有表,忽略可能在那里的任何外键约束?