Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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
MySQL:MySQL表中的每个记录都有类似于内部记录标识符的东西吗?_Mysql_Record_Identifier - Fatal编程技术网

MySQL:MySQL表中的每个记录都有类似于内部记录标识符的东西吗?

MySQL:MySQL表中的每个记录都有类似于内部记录标识符的东西吗?,mysql,record,identifier,Mysql,Record,Identifier,我正在使用MySQL构建一个电子表格应用程序,我需要识别客户端正在更新的记录,以便保存更改 是否有一种方法,例如某种“内部记录标识符”(数据库引擎本身使用的内部记录标识符),来唯一地标识记录,以便我能够更新正确的记录 当然,可以使用SELECT查询来标识记录,包括表中的所有字段,但显然,在大多数情况下,这有返回多条记录的缺点 重要提示:电子表格应用程序旨在处理任何表格,即使是设计极为糟糕、没有任何键的表格,因此“定义具有唯一索引的字段并使用该字段”等解决方案都不是一个选项,表格结构可能极为多变,

我正在使用MySQL构建一个电子表格应用程序,我需要识别客户端正在更新的记录,以便保存更改

是否有一种方法,例如某种“内部记录标识符”(数据库引擎本身使用的内部记录标识符),来唯一地标识记录,以便我能够更新正确的记录

当然,可以使用SELECT查询来标识记录,包括表中的所有字段,但显然,在大多数情况下,这有返回多条记录的缺点

重要提示:电子表格应用程序旨在处理任何表格,即使是设计极为糟糕、没有任何键的表格,因此“定义具有唯一索引的字段并使用该字段”等解决方案都不是一个选项,表格结构可能极为多变,决不重要

非常感谢

MySQL具有“自动递增”数字列,您可以添加这些列,甚至可以将其定义为主键,这将为您提供由数据库自动生成的唯一记录id。您可以查询您刚才插入的最后一个记录id
select last\u INSERT\u id()


mysql官方文档中的示例据我所知,mysql缺少Oracle中的隐式ROWID功能(并且存在于其他引擎中,具有自己的语法)。您必须创建自己的。

恐怕不存在这样唯一的内部标识符(例如,一个简单的行ID)

您可能可以在不进行任何排序的情况下运行
选择
,然后使用
限制
获取第n行。在什么情况下使用mySQL是可靠和安全的,mySQL专家需要确认。可能永远不会

尝试使用mySQL的web前端。它被设计用来处理没有键的设计糟糕的表。如果我没记错的话,它会在这种情况下使用它能掌握的所有列:

UPDATE xyz set a = b WHERE 'fieldname'  = 'value' 
                       AND 'fieldname2' = 'value2' 
                       AND 'fieldname3' = 'value3' 
                       LIMIT 0,1;
等等

当然,这也不是完全安全的


我唯一想到的是在运行时添加一个键列,并在应用程序完成后将其删除。这是一个让人起鸡皮疙瘩的想法,但可能总比什么都没有好。

我相信phpMyAdmin也会添加一个限制1来删除和更新没有主键的子句。@Adam True。我将其添加到示例中。只要phpMyAdmin是访问数据库的唯一实例,这样做可能是安全的。谢谢。这正是我目前采用的解决方案,而且绝对不安全。哇,我感觉起鸡皮疙瘩了。后者实际上是一个粗野的想法,确实会引起鸡皮疙瘩,但即使我承担了任务,我也不能改变桌子的结构。这将不得不在一个全新的临时桌子上演奏。谢谢。好主意,有了它,不符合规范:不能控制表结构,不能添加字段和键。不符合规范:不能控制表结构,不能添加字段和键。你提到的ROWID功能可能就是我想说的。谢谢