Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mysql是否有唯一的记录密钥?_Php_Mysql - Fatal编程技术网

Php Mysql是否有唯一的记录密钥?

Php Mysql是否有唯一的记录密钥?,php,mysql,Php,Mysql,我使用PHP和Mysql为客户机创建了一个简单的管理员。每当我想要编辑或删除一条记录时,我都必须在查询中发送记录的表名和唯一索引(我称之为索引的自动递增字段)。这很好,只是如果Msyql为特定数据库中的每条记录生成自己的唯一索引,那么传递一个表参数似乎是多余的 有人知道有没有这样的事吗 理由是: 我正在创建一个包含(本例中)两列的管理表。一列有标题,另一列有删除按钮。要构建此表,我需要查询一个名为inventory的表: $query = "SELECT * FROM `inventory`";

我使用PHP和Mysql为客户机创建了一个简单的管理员。每当我想要编辑或删除一条记录时,我都必须在查询中发送记录的表名和唯一索引(我称之为索引的自动递增字段)。这很好,只是如果Msyql为特定数据库中的每条记录生成自己的唯一索引,那么传递一个表参数似乎是多余的

有人知道有没有这样的事吗

理由是:

我正在创建一个包含(本例中)两列的管理表。一列有标题,另一列有删除按钮。要构建此表,我需要查询一个名为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;
$query=“从“库存”中选择*”;
$results=mysql\u query($query);
$table='存货';
$returnString='0
标题
命令
';
而($data=mysql\u fetch\u assoc($results)){
$returnString.='
“.$data['title']”
';
}
$returnString.='';
return$returnString;
所以,没关系。它工作得很好,只是我很高兴不通过javascript函数发送两条数据(索引和表名),通过formhandler返回,通过查询返回从原始查询生成的数据


如果有某种对记录的全局引用,那就太好了,这样我就可以创建一个函数,只从数据库中的任何位置删除记录。

据我所知,MySQL不会为数据库中创建的每个记录创建一个expicit唯一id(例如全局guid)。我也不认为它的存在是有意义的,因为这项工作已经通过在每个表中创建主键来完成了

表名和该表的主键的组合是该记录的唯一值,因为数据库中没有其他记录可以保存该表的主键


我无法理解这个问题背后的原因。如果您需要在单独的表中存储对特定记录的引用,那么您应该在另一个表上添加外键约束,以引用第一个表的主键。

据我所知,MySQL不会为数据库中创建的每个记录创建expicit唯一id(例如,全局guid)。我也不认为它的存在是有意义的,因为这项工作已经通过在每个表中创建主键来完成了

表名和该表的主键的组合是该记录的唯一值,因为数据库中没有其他记录可以保存该表的主键


我无法理解这个问题背后的原因。如果需要在单独的表中存储对特定记录的引用,则应在另一个表上添加外键约束,以引用第一个表的主键。

。这还不够独特吗?@Khez,这是那张桌子的独特之处。我很好奇我是否可以访问某种全局索引。为什么需要在表之间共享ID?无论如何,您仍然必须在SQL语句中包含表名,这只是出于SQL语法的需要。“你得去把它处理掉。”塞加约兹说。因为为了返回并编辑该记录,我必须传递一个表id为的参数三次。一次到表单,我证明是管理员,一次从表单到我的表单处理程序,最后一次到最终查询。我想消除使用某种全局ID传递该参数的情况,在这种情况下,我可以编写一个像“DELETE global_ID”这样简单的查询。这还不够独特吗?@Khez,这是那张桌子的独特之处。我很好奇我是否可以访问某种全局索引。为什么需要在表之间共享ID?无论如何,您仍然必须在SQL语句中包含表名,这只是出于SQL语法的需要。“你得去把它处理掉。”塞加约兹说。因为为了返回并编辑该记录,我必须传递一个表id为的参数三次。一次到表单,我证明是管理员,一次从表单到我的表单处理程序,最后一次到最终查询。我想消除使用某种全局ID传递该参数的情况,在这种情况下,我可以编写一个像“DELETE global_ID”这样简单的查询。我将确切地告诉您我想要避免这种情况的原因。我可以编写像“DELETE GLOBAL_id”这样简单的代码,而不是将表id和索引传递给我的表单、javascript函数、表单处理程序和查询@Jascha因为这是一个全局id,如果有这样一个全局id,它不会有太大的区别。@Jascha我不理解导致需要这样一个构造的设计决策。Table+PrimaryKey是唯一的值。如果您必须大量地传递它,那么全局记录guid和包含表和id的数组之间有什么区别?“我仍然认为应该有一个比你的想法更好的方法来解决这个问题,但是如果没有关于你问题的细节,我也帮不了你。”AgentConntum,我认为我的意图是显而易见的。我希望从这个过程中走出一步。我认为这个设计决定没有问题。如果我合并了两个信息位(表+键),我仍然必须在一个点上拆分它们。这是工作量的两倍。这就是我为什么要问的原因。@Jascha仍然,我认为不可能按照你的要求去做。数据库已经有了识别唯一记录(主键)的方法,所以这就是我们所使用的。对不起,我会告诉你我为什么要避免这个。我可以编写像“DELETE GLOBAL_id”这样简单的代码,而不是将表id和索引传递给我的表单、javascript函数、表单处理程序和查询@Jascha因为这是一个全局id,如果有这样一个全局id,它不会有太大的区别。@Jascha我不理解导致需要这样一个构造的设计决策。Table+PrimaryKey是