sql中规定每个表都应该有一个主键,并且每个表只能有一个主键,即PRIMARY KEY 约束

听着,我们应该这样看待它。
虽然一张表只能有一个主键,但该主键可以是多个字段的组合。
这是共享主键。
试了一下,建表,没问题:
sql CREATE TABLE test_pkey (公司 ID 号 INT、用户 ID 号 INT、用户名 VARCHAR2 (2 00));
然后你想将CompanyID和UserID都设置为主键,但是Oracle直接崩溃并报告错误ORA-02 2 6 0,说该表只能有一个主键。
这是显而易见的。
不能有两个老板同桌吧?
所以你必须改变你的想法。
将两个字段直接转换为共享主键,如下所示:
sql 更改表 TEST_PKEY 添加约束 pk1 主键(公司 ID、用户 ID);
如果再次运行,表的主键将由 CompanyID 和 UserID 一起组成。
你不相信吗?通过此查询,您可以看到:
sql SELECT a.constraint_name, a.column_name 来自 user_cons_columns a、user_constraints b WHERE a.constraint_name = b.constraint_name AND b.constraint_type = 'P' AND a.table_name = 'TEST_PKEY';
运行它,结果会显示两个字段,表明共享主键设置成功。
这是Oracle的规则:一个表有一个主键,但该主键可以由多个字段组成。

sql怎么设置两个主键

说实话,你的理解有点混乱,但也不完全错误。
让我引导您完成它。

你是对的,一张表中只能有一个主键。
但主键和外键是两个表之间的关系,而不是一张表中的两个主键。

比如你的例子:users表中有字段[age],并且useradmin表中也创建了[age]作为主键,那么users表和useradmin表设置主外键约束——这本质上是不可能成功的。
为什么?因为主键和外键的核心是保证数据的一致性。
您让 users 表的 [age] 指向 useradmin 表的 [age] 作为外键。
这要求useradmin表的[age]是唯一的并且不为空。
但useradmin表中的[age]是主键。
理论上它可以是一个唯一的值,但是一旦将其指向用户表,用户表中的 [age] 就不能有重复的值。
如果user表中有多个相同的[age],就会直接产生冲突。

更有趣的是,SQL标准不允许在一个表中定义多个主键。
虽然有些数据库系统(比如老版本的MySQL或者一些非标准数据库)可能支持“复合主键”,但它们实际上是把多个字段作为一个整体来处理来唯一标识一行,而不是仅仅将两个字段都设置为主键。

我刚学SQL的时候也犯过这个错误。
例如,在订单表中,我想将订单号和客户ID都设置为主键。
结果数据库报错只能有一个主键。
当时我不太明白,后来老师解释说,主键就是“唯一的ID标签”,唯一标识一行数据,不能有多个ID标签。

因此,在您的示例中, [age] 不应放置在 useradmin 表中作为主键,也不应将 [age] 放置在 users 表中作为主外键。
具体场景根据需求而定,但肯定和两个表中直接设置[age]为主键不一样。

我自己没有运行过其他数据库的测试数据,但是根据SQL标准,你的设计思路是不可行的。
我怀念围绕 X 的数据,但我建议检查您正在使用的特定数据库系统的文档。

sql 中 unique 约束用法_sql 中 unique 约束确保唯一性技巧

UNIQUE约束用于保证字段的唯一性,例如用户名。
用法:CREATE TABLE users(id INT PRIMARY KEY, username VARCHAR(2 5 5 ) UNIQUE); 请注意,NULL 值的处理方式有所不同。
MySQL 允许多个 NULL,而 PostgreSQL 将它们视为重复项。
不要相信UNIQUE可以取代PRIMARY KEY,它们本质上是不同的。
在实践中,要注意性能和冲突处理,例如对MySQL使用INSERT IGNORE或ON DUPLICATE KEY UPDATE。

sqlserver 界面 设置 主键 外键

上星期。
在 SQL Server 中定义主键和外键。

1 .指定主键。
打开短信。
连接到数据库。
右键单击对象资源管理器表名称。
点击“设计”。
选择要作为主键的列。
右键单击该列。
单击“设置主键”。
列标题下会出现一个锁定图标。
完成
2 安装外键。
设计视角。
右键单击空白处。
点击“关系...” 表关系窗口。
单击“添加”。
表和列的规格。
点击右键... 主键表下拉选项。
选择相关的父表。
主表必须有私钥或主键。
选择主表列。
选择当前表的外键列。
数据类型必须一致。
单击“确定”。
检查关系。
单击“关闭”。
保存表更改。

小心点。
主表列是唯一的。
外键列和主键列必须是完全相同的类型。
检查每一步是否有问题。