代码之家  ›  专栏  ›  技术社区  ›  Troy Holdreith

如何向已经有主键的表中添加更多数据?

  •  0
  • Troy Holdreith  · 技术社区  · 12 年前

    我是Mysql的新手,所以请放心。请原谅我在这方面缺乏知识。 但我到处找了,我找不到这个简单的答案真是愚蠢。尝试制作一个有趣的应用程序来推广页面,赚取积分,为fbook做PPC类型的广告等等。。。

    我目前有一个{table1}包含用户数据。 UID, fname中, 姓名, 添加日期

    以及表2,用于提交用于在页面上返回的广告的用户链接, 它只有 UID中的主 1 col现在可以向添加链接。 有了主键,我想要username或uid,但必须能够在现有主键中添加更多,这样我才能调用用户和所有链接。我可以这样添加,但当然必须删除我自己才能在表中添加更多。。。

    $query = "INSERT INTO {$table} VALUES ('{$userid}', '{$user_link}')";
    mysql_query($query) or die('Error updating database');
    

    然后,说他们稍后再加一个

    if new submission check existing then 
    add new column to existing uid... link#2=http://
    

    我错过了什么。甚至很难说出这个问题,这就是为什么我把这个放在这里搜索结果!救命!

    2 回复  |  直到 12 年前
        1
  •  2
  •   xQbert    12 年前

    您的表不能在UID上有数据库主键。根据定义,作为主键的UID必须是唯一的。所以要么你需要。

    • 组合密钥UID&USER_LINK(ORACLE思维)
    • 根本没有密钥(它有效;但您可以有重复项)
    • 一个通用的AutoNum键,每个记录加1(MSFT思维)

    当你说某个东西是主键时,你的意思是该值永远不会为null,并且在表中永远是唯一的。你必须小心;一些你认为是独一无二的东西,事实并非如此。

    在这种情况下,UNIQUE键是用用户链接定义的——同一用户不需要有相同的链接(对吧?),所以你可以在两者之间创建一个组合键。

        2
  •  1
  •   Alain Collins    12 年前

    移除 PRIMARY KEY 在表2中,根据定义,它是唯一的。使用常规索引作为 FOREIGN KEY 回到表11。