草庐IT

mysql - Laravel 5.1 迁移和播种无法截断外键约束中引用的表

我正在尝试运行迁移(见下文)并为数据库播种,但是当我运行时phpartisanmigrate--seed我收到这个错误:Migrationtablecreatedsuccessfully.Migrated:2015_06_17_100000_create_users_tableMigrated:2015_06_17_200000_create_password_resets_tableMigrated:2015_06_17_300000_create_vehicles_table[Illuminate\Database\QueryException]SQLSTATE[42000]:Sy

mysql - 外键在 MySQL : Why can I INSERT a value that's not in the foreign column? 中不起作用

我在MySQL中创建了一个表:CREATETABLEactions(A_idintNOTNULLAUTO_INCREMENT,typeENUM('rate','report','submit','edit','delete')NOTNULL,Q_idintNOTNULL,U_idintNOTNULL,dateDATENOTNULL,timeTIMENOTNULL,ratetinyint(1),PRIMARYKEY(A_id),CONSTRAINTfk_QuestionFOREIGNKEY(Q_id)REFERENCESquestions(P_id),CONSTRAINTfk_UserF

mysql - 将外键添加到现有表给出错误 1050 表已存在

我有一个包含列的表CustomizationSet:customization_set_guid(whichisanon-nullableguidandalsotheprimarykey)creator_account_guidandafewothers以及一个包含现有数据的表Registrationwiththecolumns:registration_id(anintandtheprimarykey)customization_set_guid(alsoaguid(soachar(36))whichisnullable,andallentriesarecurrentlynull)a

mysql - 组合键作为外键(sql)

这是我关心的两张表:CREATETABLEIFNOTEXISTS`tutorial`(`beggingTime`timeNOTNULL,`day`varchar(8)NOTNULL,`tutorId`int(3)NOTNULL,`maxMembers`int(2)NOTNULL,`minMembers`int(1)NOTNULL,PRIMARYKEY(`beggingTime`,`day`,`tutorId`),KEY`tutorId`(`tutorId`))CREATETABLEIFNOTEXISTS`group`(`groupId`tinyint(3)NOTNULLAUTO_INC

mysql - 我应该在哪里存储外键?

如果我在两个表之间有关系(两个表都有自己的主键),我应该根据什么来决定哪个表应该存储外键?我知道关系的性质可能很重要(一对一、一对多、多对多、单向、双向),访问模式也可能很重要。做出该决定的系统方法是什么? 最佳答案 关系中的子表是哪个表?回答这个问题,您就知道哪个表需要外键列,引用父级的[通常]主键。那是一对多的关系......多对多将需要您添加第三个表,使用这两个表中的键作为主键。 关于mysql-我应该在哪里存储外键?,我们在StackOverflow上找到一个类似的问题:

mysql - 如何使用 MySQL 在具有外键的表中插入值?

我有这两张表,例如:TAB_TEACHER-id_teacher//primarykey,autoincrement-name_teacher//avarcharTAB_STUDENT-id_student//primarykey,autoincrement-name_student//avarchar-id_teacher_fk//foreignkeyreferencetoateacher(TAB_TEACHER)我想知道这两种情况下如何插入:CASE1-INSERTanewStudentwithapre-existingTEACHER,所以我必须获取带有教师姓名的外键CASE2-I

mysql - 不能在 MySQL 中删除外键

我想放弃类(class)和讲师之间的一对多关系。当我试图在类(class)表中删除讲师ID时,它告诉我。我不能放弃它,因为它是一个外键。然后我决定像这样放弃它:ALTERTABLEcourseDROPFOREIGNKEYinstructorID但我得到这个错误:#1091-Can'tDROP'InstructorID';checkthatcolumn/keyexists我不明白这个错误是什么意思。我究竟做错了什么? 最佳答案 请运行SHOWCREATETABLE类(class);以确保讲师ID是外键constraint的名称。补充:

mysql - alter table 添加外键失败

我有3个表,它们都有innodb引擎:video(url,title,desc,country,...)url->primarykeyvideoCat(_url,category){_url,category}->primarykeyfavorite(fav_url,thumb_path)fav_url->primarykey然后我做:altertablefavoriteaddforeignkey(fav_url)referencesvideo(url)ondeletecascade一切都很顺利,但是当我尝试时:altertablevideoCataddforeignkey(_url)

MySQL外键删除

我正在尝试找出关系和删除选项。我有两个表,User和UserStaff,从User到UserStaff的关系是1:n(一个用户可以有多个员工)。当我的User被删除时,我想删除与该User关联的所有UserStaff表。当我的UserStaff被删除时,我不希望User发生任何事情。我知道这是一种级联关系,但我不确定是哪种方式。即我是在UserStaff表中选择现有的外键并使其级联,还是在User中创建一个新的外键并将其设置为级联? 最佳答案 是的,这是可能的。您应该在UserStaff表中创建FK。这样:用户表CREATETABL

sql - MySQL 中的外键?

过去几周我一直在慢慢学习SQL。我已经学习了所有关系代数和关系数据库如何工作的基础知识。我现在想做的是了解它是如何实现的。我遇到的一个绊脚石是MySQL中的外键。除了它们存在于InnoDB中,我似乎找不到太多关于它们的信息。MySQL的存储模式。什么是在MySQL中实现外键的简单示例?这是我编写的模式的一部分,如果您宁愿指出我的缺陷也不愿向我展示一个工作示例,那么它似乎不起作用。CREATETABLE`posts`(`pID`bigint(20)NOTNULLauto_increment,`content`textNOTNULL,`time`timestampNOTNULLDEFAUL