【MYSQL分享:获取缺失主键表信息语句_MySQL】教程文章相关的互联网学习教程文章

mysql – 具有链接到同一主键的多个外键的表【代码】

我最近很难通过我的MySQL数据库获得我想要的查询结果 – 目前我不确定问题是与数据库还是实际查询有关. 基本上它是一个包含这些表的足球运动员数据库:(player): player_id (primary), playerName (match): match_id (primary), playerID1, playerID2, playerID3, etc..我想查询数据库,以便返回匹配数据库中的属性,但返回的是玩家的名字,而不是他们的ID. 我可以让它为一个玩家工作,而不是其他玩家.这是代码:SELECT p.Name FROM `...

是否有推荐的Mysql主键大小

我的’projects’表中的每个条目都有一个使用varchar(32)存储的唯一32个字符的哈希标识符. 用这个作为主键会被认为是一种不好的做法吗?主键是否有推荐的大小,数据类型?解决方法:我会说是的,将这么大的列用作主键是个坏主意.原因是您在该表上创建的每个索引都将包含该32个字符的列,这将使所有索引的大小膨胀.更大的索引意味着更多的磁盘空间,内存和I / O. 如果可能,最好使用自动增量整数键,并在哈希标识符列上创建唯一索引.

重命名MySQL的主键约束【代码】

我认为这可能是MySQL的一个错误,但我不确定.任何人都可以告诉我如何为表创建主键然后重命名主要约束?如果可能,已在表创建期间使用所需名称创建主键. 我创建的所有主键最终都是名为“Primary”.在添加PK之前已经尝试使用所需名称创建索引,并使用MySQL Workbench重命名PK.他们都没有工作. 任何人都知道什么是错的,为什么我不能重命名PK名字? 谢谢!解决方法:我不确定MySQL是否允许首先为主键命名.虽然似乎有一种语法:CREATE TABLE...

mysql – 复合键VS主键不是唯一索引【代码】

这是我有的: 表内容:cat_id product_id data1 data2等这些类别显然不是唯一的.产品ID是独一无二的. 2个查询:1 – SELECT * WHERE cat_id =:cat – 必须尽可能快2 – SELECT * WHERE product_id =:prodId在第二个选择中,我可以添加:AND cat_id =:cat 效率更高的是什么? > 1 – cat_id上的索引(非唯一)(适用于选择1)> 2 – product_id上的主键(唯一 – >选择2的优秀)> 3 – product_id上的cat_id PK上的索引(非唯...

mysql – 外键是否可以成为另一个表的复合主键的一部分?【代码】

我在音乐数据库中有两个(很多)表: 音乐会:ArtistID,ConcertID,ConcetName,VenueIDConcertDetails:ConcertDate,ConcertID,Cost 您看到的ConcertDetails表使用ConcertID,它也在Concerts表中.我结合了ConcertDate& ConcertID为ConcertDetails制作复合主键.但是,由于这与Concerts表中的ConcertID有关,因此它也需要是外键.这样可以吗?解决方法:当然是.主键的子集通常是外键.例如,任何多对多表都会这样做.在你的情况下:CREATE TABLE...

MYSQL – 什么是主键?【代码】

我正在学习Mysql,我正在创建数据库.因此,在查看几个网站后,主键的定义是: PRIMARY KEY约束唯一标识数据库表中的每条记录. 并像这样使用:CREATE TABLE Persons (P_Id int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255),PRIMARY KEY (P_Id) //primary key is on this line )但是,我仍然不知道它的用途以及我们为什么需要它.所以我的问题是. 有人可以向我解释一...

使用主键和唯一键重复密钥更新的Mysql【代码】

我有一个表,其中包含一个自动递增的主键和一个唯一键:CREATE TABLE `product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `canonical_url` varchar(750) CHARACTER SET latin1 NOT NULL, ... PRIMARY KEY (`id`), UNIQUE KEY `canonical_url_idx` (`canonical_url`)如果canonical_url已经存在,我使用on duplicate key功能更新记录:"INSERT INTO product(id, canonical_url, name VALUES(?, ? ?) ON DUPLICATE KEY UPDATE name=...

MySQL第六课 主键为字符串大小写不敏感

创建表过程中,指定字段为varchar类型,并且指定为主键,如果已有一条记录为aaaa, 如果这个时候向数据库插入一条AAAA记录,将会提示:1062 - Duplicate entry AAAA for key PRIMARY解决方案1)取消PRIMARY key属性2)采用binary类型,替代varchar

mysql – 基于现有列作为主键的代理键的可行性

我正在为数据库设计架构,并对主键选择有疑问.我们现在正在查看的表中没有任何自然键可用,尽管我的团队有兴趣使用更多“可读”键来查看表之间的关系更容易一些. 当前提出的解决方案是使主键成为现有列的随机数.例如:我们有一个PERSON表,其中有一个Name列. PersonID是主键,它是Name的一些数字.所以名为Alex的人有PersonID Alex1. 我们正在寻找可能有数千个条目.这会阻碍使用字符串作为主键的性能吗?有没有理由使用或不使用更“可读...

尝试更改MySQL中的主键时“临时文件写入失败”【代码】

在MySQL中,当我尝试通过此查询更改主键时:ALTER TABLE `resources` DROP PRIMARY KEY, ADDPRIMARY KEY (`role_id`, `category_id`, `lang`, `model`, `rule`);我用MySQL root用户执行此查询,但是发生了以下错误:#1878 - Temporary file write failure.我的桌子设计是:CREATE TABLE `resources` (`role_id` INT(11) UNSIGNED NOT NULL ,`category_id` SMALLINT(5) UNSIGNED NOT NULL DEFAULT 1 ,`lang` BINARY(2) NOT NULL ,`mod...

sql-server – 使用timestamp作为主键好主意 – mysql / mariadb?

我们只是认为在microsoft中的sqlserver中存储时间戳确实保证了唯一性,但是我对mysql / mariadb有点怀疑,因为我们在插入mysql / mariadb数据库时使用并行执行. 那么,使用时间戳作为主键好主意 – mysql / mariadb? PS:总有一个PK和状态,但是如果我们使用timestamp作为where子句来获取存档/删除的实际剩余记录(这样可以有效地查询记录),这一点很重要.因此它的重要性独特解决方法:由于几个原因,IMO很糟糕.首先,盲目地分配生成的p.k...

mysql查询仅在将值与主键进行比较时才有效【代码】

我正在使用这个表:mysql> describe dispositivos; +-----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+-------+ | sn | varchar(25) | NO | PRI | NULL | | | device_id | varchar(25) | YES | | NULL | | | ip_adress | varchar(25) | YES | | NULL | ...

VARCHAR主键 – MySQL

目前,我有一个包含2列的类别表 – 类别VARCHAR(50)NOT NULL PRIMARY KEY和父VARCHAR(50).父列是类别列的外键(FK). 这似乎是最明显的方法.然而,由于我使用VARCHAR列作为主键,警报铃声在我脑海中响起,这可能会在查询表时减慢操作速度. 我可以引入一个名为cat_id INT AUTO_INCREMENT的第三列,并将其设置为PK,但它会引入一个没有意义的新列. 除了哪一个会更快,还应该考虑其他什么? 注:我预测最多会有1000个类别,因此行数不是很高.但是...

查询Mysql表名、主键、列名【图】

Mysql有几个内部表,存放schema,表名,主键,索引,列名等信息。 此次做数仓迁移,用到这些,顺手整理一下:select t.table_schema,t.table_name,concat('vnm_db01_',t.table_name) targettable,k.column_name,group_concat(c.column_name) as col from information_schema.tables t join information_schema.columns c on c.table_name=t.table_name left join (select table_name,column_name from information_schema.key_co...

php – MySQL:如何在两个主键必须匹配的DUPLICATE KEY UPDATE上进行操作?【代码】

我需要能够使用mysqli-> multi_query在一个查询调用中运行以下所有内容,这就是为什么这很棘手.我有一个由以下列组成的表: > id>电子邮件> event_promo_code> event_id 当脚本运行时,如果id AND event_id与现有记录(不仅仅是一个键或另一个键)匹配,我需要能够插入新行或UPDATE行. 我现在拥有的是:INSERT INTO `rsvps` SET id='$rsvpID', email='$rsvpEmail', event_promo_code='$rsvpEventCode', event_id='$eventID' ON DUPLIC...