【发布时间】:2016-10-28 16:01:18
【问题描述】:
我有一个名为myEntity 的表,如下所示:
- id (PK INT NOT NULL)
- account_id (FK INT NOT NULL)
- key (INT NOT NULL. UNIQUE for given account_id)
- name (VARCHAR NOT NULL. UNIQUE FOR given account_id)
我不希望将主键id 暴露给用户,并为此添加了key。 key 类型充当给定 accounts_id 的自动增量列,这需要由应用程序手动完成。我最初计划制作主键组合id-account_id,但是,该表已连接到其他表,并且在我知道之前,我的表中有四列可能是一个。虽然account_id-name 与account_id-key 的作用相同,但key 更小,并且在客户端请求多条记录时将网络流量降至最低。是的,我知道它没有正确规范化,虽然不是我的直接问题,但如果有任何建设性的批评,我将不胜感激。
抱歉,杂乱无章...聚合函数何时需要 GROUP BY?例如,下面的呢? https://stackoverflow.com/a/1547128/1032531 没有显示。需要吗?
SELECT COALESCE(MAX(key),0)+1 FROM myEntity WHERE accounts_id=123;
【问题讨论】:
标签: mysql group-by aggregate-functions