我已经阅读了所有关于我的问题在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))
2条答案
按热度按时间yzuktlbb1#
我在使用VIEW时也遇到了同样的问题,看起来是phpmyadmin无法证明查询结果中存在表设计唯一的列。在您的例子中,列是stock_id,但由于存在多个表连接,并且stock_id在其他行中不存在,因此无法确定编辑或删除时会影响哪些行。可以通过配置禁用此警告
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
mgdq6dx12#
警告末尾的信息按钮将带您进入phpMyAdmin配置设置页面,您将在该页面中找到:
$cfg ['没有唯一的行操作链接']
这解释了配置设置。我在尝试使用多个表连接时遇到了这个问题,其中每个表不共享唯一的列,尽管我使用的每个连接都使用了唯一主键来建立连接,但无论我编写了多少不同的查询,完成批量编辑的唯一方法是使用小型连接查询,或者向表中添加字段,使其与唯一的另一个表的主键。希望对您有帮助!