首页 文章

pgAdmin中的主键和外键

提问于
浏览
48

我想知道有些人可以给我一个关于如何在pgAdmin中分配主键和外键的解释吗?

我在网上找不到任何信息 .

例如......我有一张学生表,里面有他们的所有细节(地址,d.o.b . 等) . 我要在表中添加一个student_number并将其作为主键 .

我只是想知道如何使用pgAdmin做到这一点?如果你可以善解释,请给我关于在postgreSQL(和pgAdmin)中使用主键的更多信息 . 与外键相同的情况 .

4 回答

  • 0

    pgAdmin中没有选项可以将列添加到现有表并同时将其作为主键,因为这几乎不可能 .

    主键列需要包含唯一的非空值 . 将列添加到现有表后,它将保留NULL值 . 因此,您必须先输入唯一值,然后才能添加 UNIQUEPRIMARY KEY 约束 .

    但是,该规则有 exception :如果添加serial列,则会自动插入唯一值 . 在这种情况下,您还可以立即定义PRIMARY KEY:

    ALTER TABLE student ADD COLUMN student_number serial PRIMARY KEY;
    

    这适用于PostgreSQL 9.1 . 我不确定它在旧版本中也是如此 .

    pgAdmin目前在"New column..."对话框中没有为 serial 列包含此特殊情况(版本1.14) .

  • 102

    是的,有一种方法可以在pgAdmin中添加主键和外键 .

    在pgAdmin III Ver.1.16.1中测试(Windows 7)

    • 选择所需的表格

    • Ctrl Alt输入或右键单击/属性

    • 选择"Constraints"标签

    • 在表单的左下方,您将看到选项"Primary Key"

    • 单击“添加”

    • 选择"Columns"标签

    • 选择所需的列作为键

    • 单击“添加”

    你们都准备好了 .

    如果你愿意,你可以填写更多的东西,但现在你知道如何到达那里 .

  • 0

    以下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';
    
  • 22

    在Pgadmin3中,

    • 转到要添加PK或FK的表,然后右键单击并选择属性 .

    • 转到约束选项卡 .

    • 在“添加”按钮旁边的下拉列表中选择“主键”或“外键” .

    • 然后点击添加按钮 .

    • 转到列标签 .

    • 在下拉列表中选择要添加的列名称 .

    • 单击“添加”按钮 .

    • 单击“确定”按钮 .

    希望它对你有所帮助!

相关问题