标签: constraints

MySQL删除一些外键

我有一个表,其主键在其他几个表中使用,并有几个外键到其他表.

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 assignmentIDX (assignmentID) REFERENCES assignment (assignmentID)
) ENGINE = InnoDB;
Run Code Online (Sandbox Code Playgroud)

问题是,当我试图删除其中一个外键列(即locationIDX)时,它会给我一个错误.

"ERROR 1025(HY000):重命名时出错"

如何在不发生此错误的情况下删除上面的分配表中的列?

mysql constraints foreign-keys mysql-error-1025

176
推荐指数
5
解决办法
32万
查看次数

将主键添加到现有表

我有一个名为的现有表Persion.在这个表中,我有5列:

  • persionId
  • PNAME
  • PMID
  • Pdescription
  • PAMT

当我创建这个表时,我设置PersionIdPname作为主键.

我现在想在主键中添加一个列 - PMID.我怎么写一个ALTER声明来做这个?(我表中已有1000条记录)

sql sql-server constraints primary-key sql-server-2008

176
推荐指数
6
解决办法
60万
查看次数

外键约束可能导致循环或多个级联路径?

当我尝试向表格添加约束时,我遇到了问题.我收到错误:

在表'Employee'上引入FOREIGN KEY约束'FK74988DB24B3C886'可能会导致循环或多个级联路径.指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束.

我的约束是在Code表和employee表之间.该Code表包括Id,Name,FriendlyName,TypeValue.在employee具有许多参考代码,使得可以存在对于每种类型的码的参考字段.

如果删除引用的代码,我需要将字段设置为null.

我有什么想法可以做到这一点?

sql sql-server constraints

171
推荐指数
4
解决办法
12万
查看次数

如何将接口用作C#泛型类型约束?

有没有办法获得以下函数声明?

public bool Foo<T>() where T : interface;
Run Code Online (Sandbox Code Playgroud)

即.其中T是接口类型(类似于where T : class,和struct).

目前我已经满足于:

public bool Foo<T>() where T : IBase;
Run Code Online (Sandbox Code Playgroud)

其中IBase被定义为一个空接口,由我的所有自定义接口继承...不理想,但它应该工作...为什么你不能定义泛型类型必须是一个接口?

对于它的价值,我想要这个,因为Foo它正在做需要接口类型的反射......我可以将它作为普通参数传递并在函数本身中进行必要的检查,但这看起来更加类型安全(而且我假设性能更高一些,因为所有检查都是在编译时完成的).

c# generics interface constraints

155
推荐指数
7
解决办法
11万
查看次数

如何删除所有用户表?

如何在oracle中删除所有用户表?

我有约束的问题.当我禁用所有它仍然是不可能的.

oracle constraints sql-drop

155
推荐指数
7
解决办法
26万
查看次数

Oracle找到了一个约束

我有一个叫做的约束users.SYS_C00381400.我如何找到该约束是什么?有没有办法查询所有约束?

sql oracle constraints

154
推荐指数
4
解决办法
26万
查看次数

如何添加"删除级联"约束?

在PostgreSQL 8中,是否可以ON DELETE CASCADES在不丢弃后者的情况下添加到下表中的两个外键?

# \d scores
        Table "public.scores"
 Column  |         Type          | Modifiers
---------+-----------------------+-----------
 id      | character varying(32) |
 gid     | integer               |
 money   | integer               | not null
 quit    | boolean               |
 last_ip | inet                  |
Foreign-key constraints:
   "scores_gid_fkey" FOREIGN KEY (gid) REFERENCES games(gid)
   "scores_id_fkey" FOREIGN KEY (id) REFERENCES users(id)
Run Code Online (Sandbox Code Playgroud)

两个引用的表都在下面 - 这里:

# \d games
                                     Table "public.games"
  Column  |            Type             |                        Modifiers
----------+-----------------------------+----------------------------------------------------------
 gid      | integer                     | not null default nextval('games_gid_seq'::regclass)
 rounds   | integer                     | …
Run Code Online (Sandbox Code Playgroud)

postgresql cascade constraints cascading-deletes postgresql-8.4

153
推荐指数
3
解决办法
11万
查看次数

如何在MySQL中的现有列中添加非空约束

我有一个名为"Person"的表名,后面有列名

P_Id(int),
LastName(varchar),
FirstName (varchar).
Run Code Online (Sandbox Code Playgroud)

我忘了给NOT NULLConstraint P_Id.

现在我尝试使用以下查询将NOT NULLConstraint 添加到名为的现有列中P_Id,

1. ALTER TABLE  Person MODIFY  (P_Id NOT  NULL);
2. ALTER TABLE Person ADD CONSTRAINT NOT  NULL NOT NULL (P_Id);
Run Code Online (Sandbox Code Playgroud)

我收到语法错误....

mysql constraints

150
推荐指数
3
解决办法
19万
查看次数

我可以在SQL Server的add column语句中创建命名的默认约束吗?

在SQL Server中,我在表上有一个新列:

ALTER TABLE t_tableName 
    ADD newColumn NOT NULL
Run Code Online (Sandbox Code Playgroud)

这失败是因为我指定了NOT NULL而没有指定默认约束.该表不应具有默认约束.

为了解决这个问题,我可以使用默认约束创建表,然后将其删除.

但是,似乎没有任何方法可以指定默认约束应该作为此语句的一部分命名,因此我摆脱它的唯一方法是使用一个存储过程在sys.default_constraints中查找它表.

对于可能发生很多事情的操作来说,这有点混乱/冗长.有没有人有更好的解决方案呢?

sql-server constraints alter-table code-maintainability

144
推荐指数
3
解决办法
7万
查看次数

SQL DROP TABLE外键约束

如果我想像这样删除我的数据库中的所有表,它会处理外键约束吗?如果没有,我该如何处理?

GO
IF OBJECT_ID('dbo.[Course]','U') IS NOT NULL
    DROP TABLE dbo.[Course]
GO
IF OBJECT_ID('dbo.[Student]','U') IS NOT NULL
    DROP TABLE dbo.[Student]
Run Code Online (Sandbox Code Playgroud)

sql-server constraints foreign-keys drop-table database-table

141
推荐指数
4
解决办法
29万
查看次数