====== pears.IQXNetUserLink ====== Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace. ===== Description ===== Links the IQXNetUser table to the person/staff table ===== Columns ===== ^ Column ^ Type ^ Null ^ Default ^ Comment ^ | **IQXNetUserLinkID** | char(20) | NOT NULL | | | | IQXNetUserID | char(20) | NOT NULL | | | | PersonID | char(20) | NULL | | | | EmploymentID | char(20) | NULL | | | ===== Primary Key ===== * IQXNetUserLinkID ===== Foreign Keys ===== ^ Constraint ^ Columns ^ References ^ Delete/update action ^ | IQXNetUser | IQXNetUserID | [[database:tables:pears_iqxnetuser|pears.IQXNetUser (IQXNetUserID)]] | NOT NULL; ON DELETE CASCADE | | Person | PersonID | [[database:tables:pears_person|pears.Person (personid)]] | ON DELETE CASCADE | | Employment | EmploymentID | [[database:tables:pears_employment|pears.employment (employmentid)]] | ON DELETE CASCADE | ===== Referenced By ===== * No incoming foreign keys found. ===== Indexes ===== * No indexes found. ===== Triggers ===== ^ Name ^ Timing ^ Event ^ | IQXNetUserLinkDelete | after | delete order 1 | ===== Original SQL ===== -- IQX database structure split by table -- Source: IQXDatabaseStructure - with comments.sql -- Table: "pears"."IQXNetUserLink" -- Table comment: Links the IQXNetUser table to the person/staff table -- Statement count: 7 CREATE TABLE "pears"."IQXNetUserLink" ( "IQXNetUserLinkID" char(20) NOT NULL ,"IQXNetUserID" char(20) NOT NULL ,"PersonID" char(20) NULL ,"EmploymentID" char(20) NULL ,PRIMARY KEY ("IQXNetUserLinkID" ASC) ) go COMMENT ON TABLE "pears"."IQXNetUserLink" IS 'Links the IQXNetUser table to the person/staff table' go ALTER TABLE "pears"."IQXNetUserLink" ADD NOT NULL FOREIGN KEY "IQXNetUser" ("IQXNetUserID" ASC) REFERENCES "pears"."IQXNetUser" ("IQXNetUserID") ON DELETE CASCADE go ALTER TABLE "pears"."IQXNetUserLink" ADD FOREIGN KEY "Person" ("PersonID" ASC) REFERENCES "pears"."Person" ("personid") ON DELETE CASCADE go ALTER TABLE "pears"."IQXNetUserLink" ADD FOREIGN KEY "Employment" ("EmploymentID" ASC) REFERENCES "pears"."employment" ("employmentid") ON DELETE CASCADE go create trigger "IQXNetUserLinkDelete" after delete order 1 on "pears"."IQXNetUserLink" referencing old as "old_link" for each row begin if "old_link"."IQXNetUserID" <> 'ADMINUSER' and not exists(select * from "IQXNetUserLink" where "IQXNetUserID" = "old_link"."IQXNetUserID" and "IQXNetUserLinkID" <> "old_link"."IQXNetUserLinkID") then delete from "IQXNetUser" where "IQXNetUserID" = "old_link"."IQXNetUserID" end if end go COMMENT TO PRESERVE FORMAT ON TRIGGER "pears"."IQXNetUserLink"."IQXNetUserLinkDelete" IS {create trigger IQXNetUserLinkDelete after delete order 1 on "IQXNetUserLink" referencing old as "old_link" for each row begin if "old_link"."IQXNetUserID" <> 'ADMINUSER' and not exists(select * from "IQXNetUserLink" where "IQXNetUserID" = "old_link"."IQXNetUserID" and "IQXNetUserLinkID" <> "old_link"."IQXNetUserLinkID") then delete from "IQXNetUser" where "IQXNetUserID" = "old_link"."IQXNetUserID" end if end } go