Having tried variations of you statement and comparing to manual, don’t see a way for that combination to work. I did have success with the following:
DROP TABLE "RetiredMembers";
CREATE TABLE "RetiredMembers"
AS
(SELECT * FROM "MemberMaster" WHERE "NotActive" = TRUE)
WITH DATA;
ALTER TABLE "RetiredMembers" ADD ID INTEGER GENERATED ALWAYS AS IDENTITY(START WITH 1);
ALTER TABLE "RetiredMembers" ADD PRIMARY KEY (ID);
The first statement drops the existing "RetiredMembers’ table (needed many times in tests). The second statement (as in the manual) creates the new table with the specific data wanted. The third table adds the new field (at end of fields) and inserts the auto-increment number in each record. The final statement make the new field the primary key.
Edit:
Here is another method - create DB then insert wanted records. This will put ID field as first field:
DROP TABLE "RetiredMembers";
CREATE TABLE "RetiredMembers"
(
ID INTEGER GENERATED ALWAYS AS IDENTITY(START WITH 1) PRIMARY KEY,
LIKE "MemberMaster" INCLUDING DEFAULTS EXCLUDING IDENTITY
);
INSERT INTO "RetiredMembers" ( "MemberID", "FirstName", "AlternateFirstName","LastName",
"Address", "City","StateOrProvince","PostalCode", "SecondaryAddress","SecondaryCity",
"SecondaryStateProvince", "SecondaryPostalCode", "MemberType", "MemberThruDate",
"ALLeagueMember","DateJoined", "LastRenewalDate", "NwsltrByMail", "PrimaryID",
"DateLeft", "ReasonLeft", "NotActive", "Family", "CommentsLeft", "Reflect", "Address2",
"AltAddress2", "OfficerTitle", "EmailAddress")
SELECT * FROM "MemberMaster" WHERE "NotActive" = TRUE;
The only way (at least at this point) for the insert to work was with individual fields. Tried with DEFAULT for the auto-increment ID field but kept getting errors. I believe this is also part of the problem with your original statement.