如何在Phpmyadmin中使用主键和外键创建关系数据库?

我已经在Windows计算机上安装了XAMPP,运行Apache和MySQL模块并浏览到http://localhost,然后单击phpmyadmin。我创建了一个数据库并创建了一个表。

此表被称为学校,并具有称为ID的列。我将此列作为主要索引。该表还有另一个名为“名称”的列,用于存储学校的名称。

然后,我创建了另一个名为“用户”的表,并在该表中创建了一个名为schoolID的列,并为其提供了索引。该表还具有其他列,例如名字和姓氏。然后,我转到phpmyadmin中数据库的设计器选项卡,然后单击创建关系。然后,我首先单击“学校”表中的“主键”,然后单击“用户”表的Index schoolID。

然后它告诉我,该关系已成功创建,但是我没有看到连接这两个键的绿线,并且当我将其插入到“用户”表中时...我没有得到可能的学校的下拉列表,可以通过学校ID进行连接,并且没有迹象表明两个字段已连接。好像根本没有关系。

如果我尝试再次创建关系,它只会给我错误1062“无法添加内部关系-密钥“ PRIMARY”的条目重复“ testdatabase-testdatabase.users-school””

然后,我进入REMOTEMYSQL.COM并按照完全相同的步骤创建了一个数据库,以发现它运行完美。为什么我的XAMPP服务器没有创建关系,我在做什么错?

luofeihuai7713 回答:如何在Phpmyadmin中使用主键和外键创建关系数据库?

  

我创建了一个名为schoolID的列,并为其提供了索引..

我不确定您的意思。您要创建分配给用户/与之有关系的学校的列表吗?

尝试如下设置表格:

学校桌子

id = auto-increment // <-- your primary key
name = varchar(255)

id | name
----------
1 | Hogwarts
2 | Hard Knocks

用户表

id = auto-increment // <-- primary key 
name = varchar(255)
school_id = int

id | name | school_id
----------
1 | John Doe | 1 
2 | Jane Doe | 1 
3 | Foo Bar | 2 

获取前往霍格沃茨的所有用户:

SELECT * 
FROM users 
WHERE school_id = 1;

获取所有要去硬顶学校的用户!

SELECT * 
FROM users 
WHERE school_id = 2;

显然,您可以更改此设置,但希望它可以为您指明正确的方向。在开始时,请尝试从命令行使用MySQL。它可以帮助您真正专注于编写查询,而不是依赖phpmyadmin或其他任何东西。

,

与XAMPP无关,而与PMA无关。

客户很重要,但是我相信最新的PMA必须能够支持完整性。

确保将表创建为InnoDB,而不是MyISAM。另外,如果您在经历其他RDBMS之前可能会感到惊讶。首先,我认为您看不到PMA中的下拉列表。

检查完整性的另一种方法是使用FK(您所用的用户)浏览表。带有FK的字段必须显示为链接。

本文链接:https://www.f2er.com/3148416.html

大家都在问