我有一個mysql表:
--------- -------------- ------ ----- --------- -------
| Field | Type | Null | Key | Default | Extra |
--------- -------------- ------ ----- --------- -------
| hash | varchar(255) | NO | PRI | NULL | |
| user_id | bigint | NO | PRI | NULL | |
--------- -------------- ------ ----- --------- -------
但是跑步時alter table sessions drop primary key;我得到
ERROR 1091 (42000): target: my-table.-.primary: vttablet: rpc error: code = FailedPrecondition desc = Can't DROP 'PRIMARY'; check that column/key exists (errno 1091) (sqlstate 42000) (CallerID: planetscale-admin): Sql: "alter table sessions drop primary key", BindVars: {}
所以聽起來我很清楚添加這樣的主鍵alter table sessions add primary key (user_id);,但我得到:
ERROR 1062 (23000): target: my-table.-.primary: vttablet: rpc error: code = AlreadyExists desc = Duplicate entry '1' for key 'sessions.PRIMARY' (errno 1062) (sqlstate 23000) (CallerID: planetscale-admin): Sql: "alter table sessions add primary key (user_id)", BindVars: {}
我怎樣才能解決這個問題?
uj5u.com熱心網友回復:
我看到來電者是planetscale-admin。所以我猜你正在使用 PlanetScale Vitess。PlanetScale 的要求之一是表必須始終在非空列上具有主鍵或唯一鍵。他們使用“幽靈表”來執行在線表更改,并且該工具要求原始表和幽靈表都具有主鍵(或非空唯一鍵)。
閱讀https://planetscale.com/docs/learn/change-single-unique-key以獲取有關在不違反其要求的情況下遷移主鍵的說明。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/516995.html
標籤:mysqlsql行星尺度
上一篇:使用WHERE過濾子查詢
