我有一個包含三個表的數據庫。 表認證包括以下內容:正確創建關係數據庫
+----------+-----------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-----------------+------+-----+---------+----------------+
| id | int(6) unsigned | NO | PRI | NULL | auto_increment |
| userid | varchar(30) | NO | | NULL | |
| password | varchar(30) | NO | | NULL | |
| role | varchar(20) | NO | | NULL | |
| email | varchar(50) | YES | | NULL | |
+----------+-----------------+------+-----+---------+----------------+
登錄包含以下內容:
+--------------+-----------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-----------------+------+-----+---------+----------------+
| id | int(6) unsigned | NO | PRI | NULL | auto_increment |
| TimeLoggedIn | text | NO | | NULL | |
| sessionid | varchar(255) | NO | | NULL | |
+--------------+-----------------+------+-----+---------+----------------+
而且活動時間:
+----------+-----------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-----------------+------+-----+---------+-------+
| id | int(6) unsigned | NO | PRI | NULL | |
| Torrents | mediumtext | NO | | NULL | |
+----------+-----------------+------+-----+---------+-------+
還有就是ID在認證的ID字段之間的關係其他表格。
我需要在Activity中添加多行,併爲每個id使用幾個Torrents值。不幸的是,當我嘗試添加一個新行的值複製ID具有:
INSERT INTO `Activity` (`id`, `Torrents`) VALUES ('1', 'dssfsdffdsffs');
它給我的錯誤:#1062 - Duplicate entry '1' for key 'PRIMARY'
如何解決這個問題呢?我是如何創建表錯誤的?
我讀過以下明顯重複的問題:
但是,雖然它說,刪除它作爲我的主鍵,MySQL的didnt允許我,除非我犯了創建關係它是主鍵。
這不是應該發生什麼? – Strawberry
@Strawberry你的意思是我不能有包含重複'id'值的行嗎? – Droidzone
如果它是主鍵,則不行。 id和torrents一起形成一個自然的PK,或者你有一個surrogate activity_id列。如果您選擇代理鍵,那麼通常會在其餘列上形成一個UNIQUE KEY。 – Strawberry