挿入時に一意の値を作成する同じテーブルに 2 つの id 列が必要です。MySQL では 1 つの列のみが自動インクリメントできるため、他の列に対して max(id)+1 のような処理を行う必要があります。
これが私が期待したSQLです:
INSERT INTO invoices (invoiceid)
VALUES ((SELECT MAX(invoiceid)+1 FROM invoices))
select ステートメントは独立して機能しますが、INSERT 内では許可されていません。エラーが表示されます: FROM 句で更新するターゲット テーブル '請求書' を指定できません