簡體   English   中英

創建沒有主鍵的MySQL表

[英]Create MySQL table without Primary Key

我有一個不需要主鍵的表。 它由4列組成,分別是電子郵件,日期,時間,消息。 每次用戶登錄,注銷或執行任何重要的特定操作時,我都會記錄電子郵件,日期,時間和操作(消息)。 目前,該表已使用電子郵件作為主鍵進行設置,但我無法在同一電子郵件中插入多個記錄。 我想我可以將時間用作PK,但是有可能兩個動作同時出現。 我如何不使用PK就使用桌子? 我嘗試將其關閉以用於“電子郵件”列,但它不允許我這樣做。

是,因為您已將電子郵件字段定義為主要字段,所以它只能保存唯一數據,並且不允許重復。

因此,您有兩種選擇:

1:刪除電子郵件字段作為主鍵

2:將新的整數字段添加為具有自動增量的主鍵(我希望使用此整數)

您可以使用自然主鍵 ,該主鍵可以是電子郵件+日期+時間+操作的組合。 這種組合將是獨特的。 同一用戶不可能同時執行2個不同的操作。 這將幫助您保持信息的完整性。

希望這對您有所幫助。

要決定一個表的主鍵,首先要考慮以下幾點(適用於innodb):

  1. 數據在寫入后將如何訪問(如果不查詢,為什么要存儲它?)。 如果您關心讀取性能,則應按主鍵查詢數據,因為對於innodb,主鍵是唯一可能的聚集索引。

  2. 數據是按主鍵排序存儲的,因此,如果您關心寫性能,則應按主鍵寫入理想排序的數據,如果您具有auto_increment,則該數據總是自動發生的。 另外,您未明確為其指定主鍵的表將具有一個隱藏的auto_increment字段,您將無法訪問該字段,即,以相同的成本獲得的收益更少。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM