1
我有問題。 我已經創建了這段代碼來在sql server上創建一個具有標識的列,但是這個列不是主鍵。 在sqlalchemy這是很難,但我試着用這個代碼,它的工作。創建列不是主鍵但在sqlalchemy上爲sql服務器標識
def change_pk(table, sql_table_name, list_pk_column):
str_pk_column = ""
for item in list_pk_column:
str_pk_column += item + ","
str_pk_column = str_pk_column[:-1]
event.listen(table, 'after_create',
DDL("""ALTER TABLE {0} DROP CONSTRAINT {0}_id;
ALTER TABLE {0} ADD CONSTRAINT {0}_un_id UNIQUE (id);
ALTER TABLE {0} ADD CONSTRAINT {0}_pk PRIMARY KEY ({1})""".format(sql_table_name,str_pk_column)))
msg_users = sa.Table("Msg_Users",
metadata,
sa.Column("id",
sa.Integer,
info={}),
sa.Column("name",
sa.Unicode(50),
nullable=False,
info={}),
sa.Column("mobile",
sa.Unicode(15),
info={}),
sa.Column("email",
sa.Unicode(80),
info={}),
sa.Column("last_update",
sa.DateTime,
server_default=sa.func.current_timestamp(),
server_onupdate=sa.func.current_timestamp(),
info={}),
sa.PrimaryKeyConstraint('id', name="Msg_Users_id"),
info={},
autoload=aload)
change_pk(msg_users, "Msg_Users", ["name"])
你知道是否有一種方法更簡單嗎?
感謝的
我不跟着他們的問題,使用'sa.PrimaryKeyConstraint('id')'生成的主鍵有什麼問題? –
可能有誤解。我會嘗試以更好的方式解釋我的問題。我需要有「名稱」作爲主鍵和「ID」作爲標識列(它不是主鍵)。問題是我不知道如何使用sqlalchemy來完成它。我試着把auto_increment放在「id」上,但它不起作用。 –