我已经工作了很长一段时间,但仍然无法弄清楚我的代码有什么问题.每个服务都有多个配置文件,但每个配置文件只有一个服务.
Service
{
Long service_id; // primary key
... getter/setter
}
Profile
{
Long profile_id; // primary key
Long service_id; // foreign key
... getter and setter
}
Run Code Online (Sandbox Code Playgroud)
在Profile.hbm.xml中.我加
< many-to-one name="service_id" class="com.mot.diva.dto.Service" column="SERVICE_ID" cascade="save-update">
< /many-to-one>
Run Code Online (Sandbox Code Playgroud)
这是映射它的正确方法吗?
我有这个脚本在sql server 2005中工作
-- t-sql scriptlet to drop all constraints on a table
DECLARE @database nvarchar(50)
DECLARE @table nvarchar(50)
set @database = 'dotnetnuke'
set @table = 'tabs'
DECLARE @sql nvarchar(255)
WHILE EXISTS(select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where constraint_catalog = @database and table_name = @table)
BEGIN
select @sql = 'ALTER TABLE ' + @table + ' DROP CONSTRAINT ' + CONSTRAINT_NAME
from INFORMATION_SCHEMA.TABLE_CONSTRAINTS
where constraint_catalog = @database and
table_name = @table
exec sp_executesql @sql
END
Run Code Online (Sandbox Code Playgroud)
它在SQL Server 2008中不起作用.如何轻松删除某个表的所有外键约束?有没有人有更好的脚本?
这是一个2部分的问题.
问题1:我正在尝试在桌面上创建一个外键,我需要关闭"检查创建或重新启用时的现有数据".我知道这是一个可视化的选项,但我正在寻找一种以编程方式进行的方法.反正有没有这样做?
问题2:我有一个代码表和两个需要引用该代码表的表A和B. 我希望从关系表中引用这些,但我希望能够使用相同的列.我可以将2个外键指向同一列吗?
如何判断HSQLDB中定义了哪些外键?
我从文档中得到的最好的是:
select * from INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS;
Run Code Online (Sandbox Code Playgroud)
但这只给了我以下内容.
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME UNIQUE_CONSTRAINT_CATALOG UNIQUE_CONSTRAINT_SCHEMA UNIQUE_CONSTRAINT_NAME MATCH_OPTION UPDATE_RULE DELETE_RULE
------------------ ----------------- --------------- ------------------------- ------------------------ ---------------------- ------------ ----------- -----------
PUBLIC PUBLIC SYS_FK_10078 PUBLIC PUBLIC SYS_PK_10029 NONE NO ACTION CASCADE
PUBLIC PUBLIC SYS_FK_10079 PUBLIC PUBLIC SYS_PK_10029 NONE NO ACTION NO ACTION
PUBLIC PUBLIC SYS_FK_10080 PUBLIC PUBLIC SYS_PK_10071 NONE NO ACTION CASCADE
PUBLIC PUBLIC SYS_FK_10116 PUBLIC PUBLIC SYS_PK_10071 NONE NO ACTION CASCADE
PUBLIC PUBLIC SYS_FK_10120 PUBLIC PUBLIC SYS_PK_10029 NONE NO ACTION CASCADE
PUBLIC PUBLIC SYS_FK_10124 PUBLIC …Run Code Online (Sandbox Code Playgroud) 我有两个域类.
class UsersAddThese {
String someData
}
Run Code Online (Sandbox Code Playgroud)
和
class TheseAreConstantlyGenerated {
UsersAddThese theProblem
}
Run Code Online (Sandbox Code Playgroud)
有没有办法删除UsersAddThese和自动删除所有TheseAreConstantlyGenerated或我应该只是添加逻辑findAllByTheProblem,然后迭代和删除.(我更喜欢它是否可以自动完成,因此我可以添加引用但UsersAddThese不更改删除控制器的新Generated类.)
或者,有没有办法告诉GORM,"如果其他东西取决于我正在删除的东西,以便导致ERROR util.JDBCExceptionReporter - Cannot delete or update a parent row: a foreign key constraint fails,也删除它 - 递归."
我在Safari 5.0.5中测试此语句,但在FOREIGN之前出现错误:
CREATE TABLE IF NOT EXISTS Idea (
id INTEGER PRIMARY KEY,
title TEXT NOT NULL,
content TEXT NOT NULL,
created TIMESTAMP NOT NULL,
sketchID INTEGER,
categoryID INTEGER NOT NULL,
FOREIGN KEY (sketchID) REFERENCES (Sketch),
FOREIGN KEY (categoryID) REFERENCES (Category));
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
SQLStatementError 1 [DATABASE] near "(": syntax error
Run Code Online (Sandbox Code Playgroud)
这个SQL语句中的错误在哪里?
create table supplier(
.
.
.
city varchar2(16) references city(city_name)
);
Run Code Online (Sandbox Code Playgroud)
什么是正确的查询?
alter table suppliers modify city varchar2(16);
Run Code Online (Sandbox Code Playgroud) 我的应用程序使用SQLite,我已经整理出create table语句.这个想法是表A和B具有一对多(或一个)关系,因此外键将在表B中.现在我知道用于创建主键的自动增量但是如何为外键工作?如果我为表A添加一行,为表B添加5行(理想情况下所有这些行都链接到表A中的那一行),该怎么办?它不会只是从表B中的001-005自动增量吗?
如果我有下表:
class Ticket(BaseModel):
event = ForeignKeyField(Event)
category = ForeignKeyField(TicketCategory)
order_number = IntegerField()
tier_name = CharField()
num_available = IntegerField()
price = DecimalField()
Run Code Online (Sandbox Code Playgroud)
然后我执行以下代码:
tickets = Ticket.select()
for ticket in tickets:
print ticket.event.id
Run Code Online (Sandbox Code Playgroud)
访问外来对象的主键是否强制peewee启动另一个查询?或者peewee足够聪明,知道id已经可用了吗?
这是我的模型:
class Item(models.Model):
name = models.CharField(max_length=30)
...
choices = (
('weapon', 'weapon'),
('shield', 'shield'),
)
typeOf = models.CharField(max_length=15, choices=choices)
class Character(models.Model):
name = models.CharField(max_length=30, unique=True)
...
weapon = models.ForeignKey(Inventory) // **THIS IS WHAT I WANT TO DE BUT DOES'NT WORK**
shield = models.ForeignKey(Inventory) // **THIS IS WHAT I WANT TO DE BUT DOES'NT WORK**
inventory = models.ManyToManyField(Item, through='Inventory')
class Inventory(models.Model):
character = models.ForeignKey('Character')
item = models.ForeignKey('Item')
Run Code Online (Sandbox Code Playgroud)
我知道如何将物品添加到库存但现在我想装备它们.我该怎么做外键?我希望能够从我的库存中装备武器