mysql 如何查看constraint定义的的所有约束_MySQL:如何查看表上的所有约束?
MySQL:如何查看表上的所有约束?
我正在学习SQL,令我困扰的是,我似乎无法在表上找到所有约束。 我用创建表
create table t2
(a integer not null primary key,
b integer not null, constraint c1 check(b>0),
constraint fk1 foreign key(a) references t1(a));
并添加了一个约束
alter table t2
add constraint c2 check (b<20);
然后,我尝试查看所有(四个)约束
show table status
from tenn #-->the name of my database
like 't2';
然后
show create table t2;
and then
select *
from information_schema.key_column_usage
where table_name='t2';
最后
select *
from information_schema.table_constraints
where table_name='t2';
但是这些都不显示所有四个约束。 谁能告诉我如何看到所有这些?
非常感谢!
Alexander asked 2020-08-04T19:55:26Z
8个解决方案
59 votes
select COLUMN_NAME, CONSTRAINT_NAME, REFERENCED_COLUMN_NAME, REFERENCED_TABLE_NAME
from information_schema.KEY_COLUMN_USAGE
where TABLE_NAME = 'table to be checked';
RRM answered 2020-08-04T19:55:39Z
22 votes
查看当前表及其约束的最简单方法是使用:
SHOW CREATE TABLE mytable;
这将向您确切显示将输入什么SQL以定义其当前形式的表结构。
John Foley answered 2020-08-04T19:56:04Z
20 votes
MySQL不支持检查约束。 对该SQL进行解析,接受,然后以静默方式忽略,而不会向用户发送任何消息。
由于未创建检查约束,因此您将看不到它。
a_horse_with_no_name answered 2020-08-04T19:56:28Z
12 votes
您可以使用此:
select
table_name,column_name,referenced_table_name,referenced_column_name
from
information_schema.key_column_usage
where
referenced_table_name is not null
and table_schema = 'my_database'
and table_name = 'my_table'
为了获得更好的格式输出,请使用以下命令:
select
concat(table_name, '.', column_name) as 'foreign key',
concat(referenced_table_name, '.', referenced_column_name) as 'references'
from
information_schema.key_column_usage
where
referenced_table_name is not null
and table_schema = 'my_database'
and table_name = 'my_table'
Abhishek Gupta answered 2020-08-04T19:56:52Z
6 votes
您可以从information_schema.table_constraints像这样获得它:
SELECT *
FROM information_schema.table_constraints
WHERE table_schema = schema()
AND table_name = 'table_name';
blackbishop answered 2020-08-04T19:57:12Z
3 votes
外键约束在以下命令的输出的“注释”列中列出:
SHOW TABLE STATUS FROM db_name LIKE 'tbl_name';
sreimer answered 2020-08-04T19:57:32Z
2 votes
不幸的是,MySQL不支持SQL检查约束。 当您在查询中定义它们时,它们将被忽略。
Karan Motwani answered 2020-08-04T19:57:52Z
0 votes
用SQL导出数据库表。
如果您具有phpmyadmin,则可以通过访问“导出”标签来实现。 如果选择“自定义”导出方法,请确保在“特定于格式的选项”部分下选择“结构”或“结构和数据”。
示例.sql导出代码段:
--
-- Table structure for table `customers`
--
CREATE TABLE `customers` (
`username` varchar(50) NOT NULL,
`fullname` varchar(100) NOT NULL,
`postalcode` varchar(50) NOT NULL,
PRIMARY KEY (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
...
hawk8 answered 2020-08-04T19:58:21Z
mysql 如何查看constraint定义的的所有约束_MySQL:如何查看表上的所有约束?相关推荐
- mysql取消外码约束_MySQL 关闭子表的外键约束检察方法
准备: 定义一个教师表.一个学生表:在学生表中引用教师表ID create table teachers(teacherID int not null auto_increment primary k ...
- mysql字段约束_mysql数据库之表操作及字段约束条件
一.存储引擎 二.表介绍 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段 id name age sex 1 li 12 male 2 liu ...
- mysql删除表外键_MySQL删除所有表的外键约束、禁用外键约束
数据库的外键虽然能保证数据数据一致性和完整性,但是也一定程度地影响了数据更新的性能.在开发中,我们使用PowerDesigner建立物理数据模型时,为了结构的清晰,增加可读性,会创建表与表之间的关联关 ...
- mysql数据库中怎么删除一行_数据库教程_mysql如何删除表中一行数据?-
中国it教程网...
mysql中使用DELETE语句删除表中一行数据,语句为"DELETE FROM 表名称 WHERE 列名称 = 值".删除所有行的语句为"DELETE FROM tab ...
- VS(visual studio)如何查看预处理后的文件?(查看宏定义展开,头文件展开等)(注意如果要运行或调试代码,要把第一步的改回来!!!!)
如图,右键点击项目,选择属性: 找到预处理器–>预处理到文件,选择是,点击应用 找到项目中需要查看预处理后的文件,点击编译 打开被编译文件所在文件夹 进入debug文件夹 这个main.i就是我 ...
- MySQL使用什么关键字添加唯一约束_mysql怎么添加唯一约束?
方法:1.创建表时,使用"CREATE TABLE 表名(字段名 数据类型 UNIQUE);"语句来添加:2.修改表时,使用"ALTER TABLE 表名 ADD CON ...
- mysql删除表主键约束_MySQL添加约束
MySQL添加约束.删除约束及修改约束 MySQL删除约束 将t_student 删除外键约束:alter table 表名 drop foreign key 外键(区分大小写); alter tab ...
- mysql添加字段时定义候选键_MySQL 表约束
约束概述 对数据表中数据的限制条件叫表的约束,目的是为了保证表中记录的完整和有效.例如非空.唯一等. 查看约束 1 通过查看建表语句 查看表中的约束 show create table tb_name ...
- MySQL中外键的定义、作用、添加和删除
1 简介 在实际开发的项目中,一个健壮数据库中的数据一定有很好的参照完整性.例如学生档案和成绩单两张表,如果成绩单中有张三的成绩,学生档案中张三的档案却被删除了,这样就会产生垃圾数据或者错误数据.为了 ...
最新文章
- ubuntu 编译caffe makefile.config
- Apollo基础设置
- C# 发出异步的Get请求
- neo4j与mysql数据库_Neo4j: 迁移MySQL的数据到Neo4j
- 解决Sharepoint每天第一次打开速度慢的问题
- django-学生列表页的制作
- python rabitmq_python使用rabbitmq实例二,工作队列
- Mysql-2-数据库基础
- Future机制原理
- 机器人机构学的数学基础——绪论
- Java类加载器的使用
- ROS路由器做PCQ限速教程
- Doc2Vec 模型参数
- java音乐bpm,Java Tempo.setBpm方法代码示例
- 【无标题】2021年烷基化工艺证考试及烷基化工艺操作证考试
- Java 直接插入 CLOB/BLOB 数据到 Oracle 数据库
- OPTA 7模式测试说明
- Excel翻译单元格内容
- Icon图标 [Java]
- 灰狼优化算法(Grey Wolf Optimizer, GWO)