在pgAdmin中的主键和外键
我想知道可以给我一个解释如何在pgAdmin中分配主键和外键吗?
我无法在网上find任何信息。
例如…我有一个学生表及其所有细节(地址,dob等)。 我将添加一个student_number到表中,并将其作为主键。
我只是想知道如何使用pgAdmin? 如果你可能有点解释给我更多关于在PostgreSQL中使用主键(和pgAdmin)的信息。 与外键相同的情况。
在pgAdmin中没有选项可以将列添加到现有的表中,并使其成为主键,因为这几乎是不可能的。
主键列需要保存唯一的非空值。 在将列添加到现有表时,它将保存NULL值。 所以你必须input唯一的值,然后才能添加UNIQUE
或PRIMARY KEY
约束。
但是,该规则有一个例外 :如果添加一个serial
列,则会自动插入唯一值。 在这种情况下,你也可以直接定义它的PRIMARY KEY:
ALTER TABLE student ADD COLUMN student_number serial PRIMARY KEY;
这在PostgreSQL 9.1中起作用。 我不确定它在旧版本中也是如此。
此时pgAdmin没有在“New column …”对话框中包含serial
列的特殊情况(版本1.14)。
是的,有一种方法可以在pgAdmin中添加主键和外键。
在pgAdmin III Ver.1.16.1(Windows 7)中testing
- select你想要的表格
- 按Ctrl + Alt + Enter或右键单击/属性
- select“约束”选项卡
- 在窗体的左下angular,您将看到选项“主键”
- 点击添加
- select“列”选项卡
- select你想要的列作为关键
- 点击添加
而且你们都定了。
如果你愿意,你可以填写更多的东西,但现在你知道如何到达那里。
下面的SQL将工作
SELECT tc.constraint_name, tc.table_name, kcu.column_name, ccu.table_name AS foreign_table_name, ccu.column_name AS foreign_column_name FROM information_schema.table_constraints AS tc JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name WHERE constraint_type = 'PRIMARY KEY' AND tc.table_name='table_name';
在Pgadmin3中,
- 转到要添加PK或FK的表格,然后右键单击并select属性。
- 转到约束选项卡。
- 在“添加”button旁边的下拉列表中select主键或外键。
- 而不是点击添加button。
- 转到栏标签。
- 在下拉列表中select要添加的列名称。
- 点击添加button。
-
点击确定button。
希望它对你有帮助!