För att lägga till en begränsning till en kolumn Den måste finnas först i tabellen det finns inget kommando i Postgresql som du kan använda som lägger till kolumnen och lägger till begränsningen samtidigt. Det måste vara två separata kommandon. Du kan göra det med följande kommandon:
Gör först som:
ALTER TABLE links_chatpicmessage ADD COLUMN sender INTEGER;
Jag använder integer
som typ här men det bör vara samma typ av id
kolumnen i auth_user
bord.
Sedan lägger du till begränsningen
ALTER TABLE links_chatpicmessage
ADD CONSTRAINT fk_someName
FOREIGN KEY (sender)
REFERENCES auth_user(column_referenced_name);
ADD CONSTRAINT fk_someName
en del av detta kommando är namngivning din begränsning så om du senare behöver dokumentera den med något verktyg som skapar din modell kommer du att ha en namngiven begränsning istället för ett slumpmässigt namn.
Det tjänar också administratörsändamål så att en DBA vet att begränsningen kommer från den tabellen.
Vanligtvis namnger vi den med en antydan om var den kom ifrån till var den hänvisar till i ditt fall, den skulle vara fk_links_chatpicmessage_auth_user
så alla som ser detta namn kommer att veta exakt vad denna begränsning är utan att göra en komplicerad fråga på INFORMATION_SCHEMA för att ta reda på det.
REDIGERA
Som nämnts av @btubbs svar kan du faktiskt lägga till en kolumn med en begränsning i ett kommando. Som så:
alter table links_chatpicmessage
add column sender integer,
add constraint fk_test
foreign key (sender)
references auth_user (id);