[英]Is There a Unique Record Key for Mysql?
我有一個簡單的管理員,我正在為使用PHP和Mysql的客戶端創建。 無論何時我想編輯或刪除一條記錄,我都必須在我的查詢中發送我的記錄的表名和唯一索引(一個自動遞增的字段,我稱之為索引)。 這很好,除非傳遞一個表參數似乎是多余的,如果Msyql為特定數據庫中的EACH記錄生成它自己的唯一索引。
有誰知道是否有這樣的事情?
推理:
我正在制作一個管理表(對於這個例子)兩列。 一列有標題,另一列有刪除按鈕。 為了構建這個表,我查詢了一個名為inventory的表:
$query = "SELECT * FROM `inventory`";
$results = mysql_query($query);
$table = 'inventory';
$returnString = '
<table>
<tr>
<th>Title</th>
<th>Command</th>
</tr>
';
while($data = mysql_fetch_assoc($results)){
$returnString .='
<tr>
<td>' . $data['title'] . '</td>
<td><input type="button" value="delete" onclick="remove_record(' . $data['index']. ',\'' . $data['table'] . '\')" />
</tr>';
}
$returnString .='</table>';
return $returnString;
所以,沒關系。 它工作得很好,除了我很高興不通過我的javascript函數發送兩個數據(索引和表名),通過我的formhandler返回通過我的查詢來檢索我從原始查詢生成的數據。
如果存在對記錄的某種GLOBAL引用,那將是很好的,所以我可以創建一個函數來消除我數據庫中ANYWHERE的記錄。
據我所知,MySQL不會為數據庫中創建的每條記錄創建一個expicit唯一ID(例如全局guid)。 我也認為它不存在是有道理的,因為通過在每個表中創建主鍵已經完成了這項工作。
表名和該表的主鍵的組合是記錄的唯一值,因為數據庫中沒有其他記錄可以保存該表的主鍵。
我無法理解這個問題背后的原因。 如果需要在單獨的表中存儲對特定記錄的引用,則應該在該另一個表上添加外鍵約束以引用第一個表的主鍵。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.