我在 MariaDB 中创建多对多关系表时遇到问题。我尝试过使用工作台、手动创建脚本和“Show Create Table xxxxxxx;” 从另一个已经创建的n到n个表但结果总是相同的,出现以下错误:
Error Code: 1005. Can't create table `asi_234_api_establecimientos`.`oe_modalidad` (errno: 150 "Foreign key constraint is incorrectly formed")
Run Code Online (Sandbox Code Playgroud)
我用来创建表的代码:
CREATE TABLE `oe_modalidad` (
`oferta_establecimiento_id` bigint(20) NOT NULL,
`modalidad_id` bigint(20) NOT NULL,
KEY `fk_oe_modalidades_oferta_establecimiento1_idx` (`oferta_establecimiento_id`),
KEY `fk_oe_modalidad_modalidad1_idx` (`modalidad_id`),
CONSTRAINT `fk_oe_modalidad_modalidad1` FOREIGN KEY (`modalidad_id`) REFERENCES `modalidad` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
CONSTRAINT `fk_oe_modalidades_oferta_establecimiento1` FOREIGN KEY (`oferta_establecimiento_id`) REFERENCES `oferta_establecimiento` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB
Run Code Online (Sandbox Code Playgroud)
我尝试在两个不同版本的 MariaDB(10.0.38 和 5.5.60)中运行它,但我不断收到相同的错误。
我想创建一个 user_posts 视图,其中包含与特定用户相关的所有帖子,假设有用户“Natsu”撰写的博客帖子,那么登录用户“Testuser”将能够查看所有帖子由该用户即用户“Natsu”的所有帖子。
blog models.py
class Post(models.Model):
title = models.CharField(max_length=250)
slug = models.SlugField(max_length=250, unique_for_date='publish')
author = models.ForeignKey(User, on_delete=models.CASCADE, related_name='blog_posts')
body = models.TextField()
Run Code Online (Sandbox Code Playgroud)
user models.py
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
image = models.ImageField(upload_to='profile_pic', default='default.jpg')
def __str__(self):
return f'{ self.user.username } Profile'
Run Code Online (Sandbox Code Playgroud)
views.py
def user_posts(request, username):
posts = Post.objects.filter(author=username)
return render(request, 'blog/user_posts.html', {'posts':posts})
Run Code Online (Sandbox Code Playgroud)
user_posts.html
{% for post in posts %}
<a href="{% url 'user-posts' post.author.username %}" class="mr-2">{{ post.author }}</a>
<h2><a href="{% url 'post-detail' post.pk %}">{{ post.title }}</a></h2>
{{ post.body|truncatewords:30 }}
{% …Run Code Online (Sandbox Code Playgroud) 我在运行时收到来自 EF Core 的一堆日志抱怨,如下所示:
[10:56:14 DBG] The index {'InvoiceId'} was not created on entity type 'CompleteCase' as the properties are already covered by the index {'InvoiceId', 'Code'}.
[10:56:14 DBG] The index {'ReportPeriodId'} was not created on entity type 'FixedBill' as the properties are already covered by the index {'ReportPeriodId', 'MedCompanyTypeId', 'FixedBillTypeId'}.
[10:56:14 DBG] The index {'CasePeriodId'} was not created on entity type 'Invoice' as the properties are already covered by the index {'CasePeriodId', 'ReportPeriodId', 'MedCompanyTypeId'}.
[10:56:14 DBG] The index {'InvoiceId'} …Run Code Online (Sandbox Code Playgroud) sql-server foreign-keys relational-database entity-framework-core entity-framework-migrations
我想向“客户”表添加一列,该表是外键引用“Test_Drive”表。我在用
ALTER TABLE Customer
ADD FOREIGN KEY (Test_Drive_ID) REFERENCES Test_Drive(Test_Drive_ID);
Run Code Online (Sandbox Code Playgroud)
我认为它应该在我的桌子上正常工作。下面我发送他们的设计:
我不知道我是否瞎了,犯了一些拼写错误,或者出了什么问题。我很感激任何帮助:)
消息 1769,级别 16,状态 1,第 98
行外键“Test_Drive_ID”引用引用表“Customer”中的无效列“Test_Drive_ID”。消息 1750,级别 16,状态 0,第 98 行 无法创建约束或索引。请参阅以前的错误。
在下面的示例中,如何以及在哪里设置默认值?
author = models.ForeignKey('Author', on_delete=models.SET_DEFAULT)
我有一个注册课程,其中有分数列表。我试图引用 Score 类,但得到以下结果:
通过 JDBC 语句执行 DDL“更改表分数添加约束...外键(enrollment_id)引用注册(id)”时出错 原因:java.sql.SQLException:无法打开引用的表“注册”
运行应用程序后,在数据库中创建了 Score 表,但缺少 Enrollment 表,并且 Score 的 enrollment_id 列不是外键。
我怎么解决这个问题?我尝试用 @Cache 进行注释并忽略表的双重创建,但没有成功。我正在使用MySQL。
@Entity
@Table(name = "enrollment")
public class Enrollment {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public int id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "student_id")
public Student student;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "date", nullable = false)
public Date date;
@Column(name = "rank", nullable = false)
public int rank;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "specialty_id", referencedColumnName = "id")
public Specialty specialty;
@Lob
@Basic(fetch = FetchType.LAZY) …Run Code Online (Sandbox Code Playgroud) 我有一个表,breeds其主键为breed_name,并且希望获取引用的所有表、列和约束的列表,breeds无论 中引用的列如何breeds。如果还有另一个表,cats并且该表具有如下约束:
CREATE TABLE cats
(
cat_name text,
cat_breed text,
CONSTRAINT cat_breed_name
FOREIGN KEY (cat_breed) REFERENCES breeds(breed_name)
)
Run Code Online (Sandbox Code Playgroud)
我应该返回如下一行:
base_table base_col referencing_table referencing_col constraint_sql
breeds breed_name cats cat_breed CONSTRAINT cat_breed_name FOREIGN KEY (cat_breed) REFERENCES breeds(breed_name)
Run Code Online (Sandbox Code Playgroud)
还应该列出非主键引用,并且它应该处理复合键。
我刚开始学习数据库设计中的外键的优点(mySQL/innoDB),我想知道在执行特定的删除查询时是否有任何方法可以暂时绕过外键,只是在父表中删除,而不是来自链接的子表.
谢谢
如果"link"不是事先确切的术语,我道歉.
我有一个包含用户信息的表(用户和密码).我需要相同的用户:密码对出现在同一数据库中的另一个表中.第二个表需要始终复制第一个表 - 如果从第一个表中删除或添加了一个条目 - 更改必须立即应用于第二个表.
请,我需要一个如何做到这一点的例子,因为我不知道在谷歌搜索的术语..
我只需要两列重复,而不是整个表.
foreign-keys ×10
mysql ×3
sql ×3
django ×2
python ×2
sql-server ×2
alter-table ×1
database ×1
entity-framework-migrations ×1
java ×1
jpa ×1
mariadb ×1
postgresql ×1
spring ×1
sqlite ×1
t-sql ×1
triggers ×1
valueerror ×1
view ×1