草庐IT

MySQL外键允许NULL?

我正在拼凑一个图片网站。基本架构非常简单的MySQL,但我在尝试表示与图像关联的可能管理标志时遇到了一些麻烦(“不适当”、“受版权保护”等)。我目前的想法如下:tblImages(imageIDINTUNSIGNEDNOTNULLAUTO_INCREMENT,...);tblImageFlags(imageFlagIDINTUNSIGNEDNOTNULLAUTO_INCREMENT,imageIDINTUNSIGNEDNOTNULL,flagTypeIDINTUNSIGNEDNOTNULL,resolutionTypeIDINTUNSIGNEDNOTNULL,...);luResolu

MySQL使用外键创建表,给出errno : 150

我试图在MySQL中创建一个带有两个外键的表,这两个外键引用了其他2个表中的主键,但是我收到了一个errno:150错误,它不会创建表。这是所有3个表的SQL:CREATETABLErole_groups(`role_group_id`int(11)NOTNULL`AUTO_INCREMENT`,`name`varchar(20),`description`varchar(200),PRIMARYKEY(`role_group_id`))ENGINE=InnoDB;CREATETABLEIFNOTEXISTS`roles`(`role_id`int(11)NOTNULLAUTO_INC

mysql - 虚假外键约束失败

我收到此错误消息:ERROR1217(23000)atline40:Cannotdeleteorupdateaparentrow:aforeignkeyconstraintfails...当我尝试删除表格时:DROPTABLEIFEXISTS`area`;...定义如下:CREATETABLE`area`(`area_id`char(3)COLLATEutf8_spanish_ciNOTNULL,`nombre_area`varchar(30)COLLATEutf8_spanish_ciNOTNULL,`descripcion_area`varchar(100)COLLATEutf8_

mysql - 绕过外键约束强制删除mysql

我正在尝试从数据库中删除除一个之外的所有表,但最终出现以下错误:Cannotdeleteorupdateaparentrow:aforeignkeyconstraintfails当然,我可以反复试验以查看这些关键约束是什么,并最终删除所有表,但我想知道是否有一种快速方法可以强制删除所有表(因为我将能够重新插入那些我不想删除的)。Google将我瞄准了一些建议以下方法的网站:mysql>SETforeign_key_checks=0;mysql>droptable...mysql>SETforeign_key_checks=1;简短的回答是它并没有真正起到作用,因为我最终收到了同样的错误

MySQL 无法删除外键约束中所需的索引

我需要更改我现有的数据库以添加一列。因此,我还想更新UNIQUE字段以包含该新列。我正在尝试删除当前索引,但不断收到错误MySQLCannotdropindexrequiredinaforeignkeyconstraintCREATETABLEmytable_a(IDTINYINTNOTNULLAUTO_INCREMENTPRIMARYKEY,NameVARCHAR(255)NOTNULL,UNIQUE(Name))ENGINE=InnoDB;CREATETABLEmytable_b(IDTINYINTNOTNULLAUTO_INCREMENTPRIMARYKEY,NameVARCHA

mysql外键约束格式错误

我有两个表,table1是父表,列ID和table2列IDFromTable1(不是实际名称)当我将FK放在IDFromTable1到table1中的ID上时,我收到错误Foreignkeyconstraintis格式不正确的错误。如果table1记录被删除,我想删除表2记录。感谢您的帮助ALTERTABLE`table2`ADDCONSTRAINT`FK1`FOREIGNKEY(`IDFromTable1`)REFERENCES`table1`(`ID`)ONUPDATECASCADEONDELETECASCADE;如果需要任何其他信息,请告诉我。我是mysql新手

MySQL外键约束,级联删除

我想使用外键来保持完整性并避免孤儿(我已经使用了innoDB)。如何创建一个在CASCADE上删除的SQL语句?如果我删除一个类别,那么如何确保它不会删除也与其他类别相关的产品。数据透视表“categories_products”在其他两个表之间创建了多对多关系。categories-id(INT)-name(VARCHAR255)products-id-name-pricecategories_products-categories_id-products_id 最佳答案 如果您的级联删除了一个产品,因为它是被杀死的类别的成员,那

mysql - 外键约束 : When to use ON UPDATE and ON DELETE

我正在使用MySQLWorkbench设计我的数据库架构,这非常酷,因为您可以绘制图表并转换它们:P无论如何,我决定使用InnoDB,因为它支持外键。我注意到的一件事是它允许您为外键设置更新和删除选项。有人能解释一下在一个简单的例子中可以在哪里使用“限制”、“级联”和设置空值吗?例如,假设我有一个user包含userID的表.并说我有一个消息表message这是一个多对多,有2个外键(在userID表中引用相同的主键user)。在这种情况下,设置OnUpdate和OnDelete选项有用吗?如果是,我该选择哪一个?如果这不是一个很好的例子,你能否提出一个很好的例子来说明这些是如何有用的

sql - 具有外键的表列可以为 NULL 吗?

我有一个表,其中有几个ID列到其他表。我想要一个外键来强制完整性只有如果我把数据放在那里。如果我稍后进行更新以填充该列,那么它还应该检查约束。(这可能取决于数据库服务器,我使用的是MySQL和InnoDB表类型)我认为这是一个合理的期望,但如果我错了,请纠正我。 最佳答案 是的,您只能在值不为NULL时强制执行约束。这可以通过以下示例轻松测试:CREATEDATABASEt;USEt;CREATETABLEparent(idINTNOTNULL,PRIMARYKEY(id))ENGINE=INNODB;CREATETABLEchil

mysql - MySQL是否自动索引外键列?

MySQL会自动索引外键列吗? 最佳答案 是的,但仅限于innodb.Innodb是目前唯一实现了外键的表格式。 关于mysql-MySQL是否自动索引外键列?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/304317/