MySQL:当前选择不包含唯一列,网格编辑、复选框、编辑、复制和删除功能不可用

cnh2zyt3  于 2022-11-28  发布在  Mysql
关注(0)|答案(2)|浏览(240)

我已经阅读了所有关于我的问题在SO的帖子。但没有解决这个问题。
问题:执行上述查询时,会出现下列警告。

当前选择不包含唯一列。网格编辑、复选框、编辑、复制和删除功能不可用。

下面是我的查询。

SELECT ST.stock_code, S.supplier_name, I.item_name, P.avail_qty, SL.unit_price, P.expire_date 
FROM purchase_items P 
INNER JOIN stock ST ON P.stock_id = ST.stock_id 
INNER JOIN suppliers S ON ST.sup_id = S.sup_id 
INNER JOIN items I ON P.item_id = I.item_id 
INNER JOIN sales SL ON P.item_id = SL.item_id 
WHERE (P.expire_date > (NOW() + INTERVAL 1 MONTH))

采购项目表

yzuktlbb

yzuktlbb1#

我在使用VIEW时也遇到了同样的问题,看起来是phpmyadmin无法证明查询结果中存在表设计唯一的列。在您的例子中,列是stock_id,但由于存在多个表连接,并且stock_id在其他行中不存在,因此无法确定编辑或删除时会影响哪些行。可以通过配置禁用此警告

$cfg['RowActionLinksWithoutUnique'] = true

https://docs.phpmyadmin.net/en/latest/config.html#cfg_RowActionLinksWithoutUnique
Resolution: This table does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available

mgdq6dx1

mgdq6dx12#

警告末尾的信息按钮将带您进入phpMyAdmin配置设置页面,您将在该页面中找到:
$cfg ['没有唯一的行操作链接']

Type: boolean
Default value:    false
Defines whether to show row links (Edit, Copy, Delete) and checkboxes for 
multiple row operations even when the selection does not have a unique key. 
Using row actions in the absence of a unique key may result in different/more 
rows being affected since there is no guaranteed way to select the exact 
row(s).

这解释了配置设置。我在尝试使用多个表连接时遇到了这个问题,其中每个表不共享唯一的列,尽管我使用的每个连接都使用了唯一主键来建立连接,但无论我编写了多少不同的查询,完成批量编辑的唯一方法是使用小型连接查询,或者向表中添加字段,使其与唯一的另一个表的主键。希望对您有帮助!

相关问题