簡體   English   中英

是否有Mysql的唯一記錄鍵?

[英]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.

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