小编tom*_*tom的帖子

将删除级联到多对多关联表?

我有一个级联删除的问题.我有两个表,它们被映射为多对多:

class File(object): pass 
file_table = Table('file', metadata, 
        Column('id', Integer, primary_key=True, autoincrement=True), 
        Column('filename', String(255)), 
} 

class FileHost(object): pass 
file_host = Table('host', metadata, 
        Column('id', Integer, primary_key=True, autoincrement=True ), 
        Column('name', String(255)), 
) 

file_hosted = Table('file_hosted', metadata, 
        Column('id_host', Integer, ForeignKey('host.id')), 
        Column('id_file', Integer, ForeignKey('file.id')) 
) 

session.mapper(File, file_table, properties={ 
    'host': relation(FileHost, secondary=file_hosted, backref='files', 
                        cascade='all,delete-orphan', single_parent=True) 
}) 
session.mapper(FileHost, file_host) 
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

sqlalchemy.exc.IntegrityError: 
(IntegrityError) update or delete on table "file" violates
foreign key constraint "file_hosted_id_file_fkey" on table "file_hosted" 
DETAIL:  Key (id)=(50905) is still referenced from table "file_hosted". 
Run Code Online (Sandbox Code Playgroud)

有谁知道我做错了什么? …

sqlalchemy

8
推荐指数
1
解决办法
6392
查看次数

<>运算符在python中做什么?

我刚刚在这里遇到过这个,总是像这样使用:

if string1.find(string2) <> -1:
    pass
Run Code Online (Sandbox Code Playgroud)

什么是<>运营商做的,为什么不使用普通的==in

对不起,如果之前已经回答,搜索引擎不喜欢标点符号.

python

7
推荐指数
2
解决办法
339
查看次数

标签 统计

python ×1

sqlalchemy ×1