亲爱的所有人,我在MySQL中遇到了一个问题:我无法在MySQL命令行界面中执行DELETE FROM users where user_id ='1';。所以我在phpMyAdmin中尝试:使用图形用户界面删除一行,得到如下结果:
SQL查询:
DELETE FROM `health_portal`.`users` WHERE `users`.`user_id` =1
MySQL说:文档
Cannot delete or update a parent row: a foreign key constraint fails (`health_portal`.`users`,
我正试图在我的表上设置外键约束,以便在删除主键时自动删除该行。
主表是
CREATE TABLE IF NOT EXISTS `tbl_users` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(250) NOT NULL,
`password` varchar(250) NOT NULL,
`user_role` varchar(100) NOT NULL DEFAULT 'staff',
`user_name` varchar(250) NOT NULL DEFAULT 'staff
我正在使用Mysql命令行创建几个简单的表。在创建“外国钥匙”时,我得到了错误号150的库存。你能帮我拿一下这个吗。我对SQL有点陌生。谢谢!
mysql> CREATE TABLE maintenancepersons (ServiceID INT NOT NULL AUTO_INCREMENT,
MechanicID INT NOT NULL,
ServiceName VARCHAR(100) NOT NULL,
PRIMARY KEY ( ServiceID ), CarVIN INT NOT NULL,
FOREIGN KEY ( CarVIN ) REFERENCES
我正在按照链接创建mysql表
但我一直在犯这个错误
FOREIGN KEY (serial_no) REFERENCES tag_master(orig_serial_no) ON UPDATE CASCADE ON DELETE RESTRICT:
Cannot find an index in the referenced table where the
referenced columns appear as the first columns, or column types
in the table and the referenced table do not match for
我正在将我的quartz.net版本从1.0.3升级到2.0.2 --数据库模式有一个迁移脚本,它是为MSSQL编写的,我正在尝试编写它的MYSQL版本。
但是,我还没有能够删除主键(我需要这样做)。
脚本的原始MSSQL版本:
ALTER TABLE BLOB_TRIGGERS DROP CONSTRAINT BLOB_TRIGGERS_PKEY;
ALTER TABLE BLOB_TRIGGERS DROP CONSTRAINT BLOB_TRIGGERS_TRIGGER_NAME_FKEY;
ALTER TABLE SIMPLE_TRIGGERS DROP CONSTRAINT PK_S
以下是我迄今尝试过的:
mysql> alter table wp_delayedCoupons_visits remove foreign key fk_targets_visits;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'foreign key fk_targets_visits' at line 1
我想删除表中的外键,但已进入此错误消息
mysql> alter table customers drop foreign key customerid;
ERROR 1025 (HY000): Error on rename of '.\products\customers' to '.\products\#sql2-7ec-a3' (errno: 152)
mysql>
我在mysql中尝试过:
mysql> alter table region drop column country_id;
结果是这样的:
ERROR 1025 (HY000): Error on rename of './product/#sql-14ae_81' to
'./product/region' (errno: 150)
有什么想法吗?外键的东西?
我正在尝试使用ON DELETE CASCADE作为我正在处理的数据库。似乎不起作用,所以我在一个简单的例子中进行了测试,但没有成功。
CREATE TABLE foo (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
data VARCHAR(10),
PRIMARY KEY (id)
)ENGINE=InnoDB;
CREATE TABLE foo2 (
id INT UNSIGNED NOT NULL,
data2 VARCHAR(10),
PRIMARY KEY (id),
CONSTRAINT fk_foo2_id FOREIGN KEY (id
-表Project_DB.Product_table
CREATE TABLE IF NOT EXISTS `Project_DB`.`Product_table`
(
`Product_id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`User_id_fk` INT UNSIGNED NOT NULL ,
`Product_Category_id` INT UNSIGNED NOT NULL ,
`Product_Name` VARCHAR( 45 ) NOT NULL ,
`Product_Pric
我有下面的桌子
1. TABLE1 (Primary Key ID)
2. TABLE2 (ID Foreign key reference from TABLE1)
3. TABLE3 (ID Foreign key reference from TABLE1)
4. TABLE4 (ID Foreign key reference from TABLE1)
5. TABLE5 (ID Foreign key reference from TABLE1)
最重要的是,5个表都有大量的数据。
现在我试图将ID重命名为OLD_ID in TABLE1
我想通过设置SET FOREIGN_KEY_
MySQL是否支持检查约束?
我可以在MySQL中执行以下脚本而不会出错。
ALTER TABLE EMP_DB_DESIGN_EXCEL ADD (
CONSTRAINT CHK_EMP_IS_ACTIVE CHECK (IS_ACTIVE IN ('Y','N')));
但如果我查询,它不会反映:
SELECT * FROM information_schema.TABLE_CONSTRAINTS T where t.table_name='EMP_DB_DESIGN_EXCEL';
我正在构建一个必须在MySQL、PostgreSQL和SQLite上工作的数据库。我的一个表有一个两列主键:
CREATE TABLE tournament (
state CHAR(2) NOT NULL,
year INT NOT NULL,
etc...,
PRIMARY KEY(state, year)
);
我希望从另一个表中引用tournament表,但是希望这个引用是可空。我可以这样做,想象一个胜利者不一定会有比赛:
CREATE TABLE winner (
name VARCHAR NOT NULL,
state CHAR(