问题
I have read all the posts regarding my issue in SO. But nothing fixed this.
Issue: When runs the mentioned query, below warning appears.
Current selection does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available.
Below is my query.
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))
purchase_items table
回答1:
I faced same problem when I use VIEW and looks like it's phpmyadmin just can't prove that there are columns in resulting query that unique by table design. In your case it's stock_id, but since there is multiple table join and stock_id is not present in other rows it is unable to deside what row shoild be affected on edit or delete. This warning could be disabled via config
$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
回答2:
The Info button at the end of the Warning will take you to the phpMyAdmin configuration settings page where you will find:
$cfg['RowActionLinksWithoutUnique']
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).
This explains the Configuration setting. I ran into this issue when trying to use Multiple table joins where each of the tables didn't share a unique column although each of the join I used I used Unique Primary keys to establish the joins, but no matter how many different queries I wrote the only way to accomplish a Mass Edit is either in small join queries or add fields to your table to make it join with a unique primary key of another table. Hope that is helpful!
来源:https://stackoverflow.com/questions/40520180/mysql-current-selection-does-not-contain-a-unique-column-grid-edit-checkbox