标签: foreign-keys

清除未使用的外键

两个表 A 和 B,A 记录包含对 B 记录的引用。

我在 B 中有一些 A 没有使用的记录。

只需在一条 SQL 语句之后删除它们。

sql foreign-keys

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

主键或唯一列上的 SQL 外键

假设我有两个表,表 A 和表 B,并且表 A 具有以下列:

COLUMNS (id INT PRIMARY KEY, name VARCHAR(200) UNIQUE)
Run Code Online (Sandbox Code Playgroud)

我想在表 B 中创建一列,它使用外键引用表 A 的一行。大多数情况下,当我在表 BI 中查找一行时,还希望检索它引用的表 A 行中的名称字段。查找(但不是插入)的速度是一个问题。

是用A表的主键做外键,然后用JOIN把name字段的值带进来,还是用name字段做外键,这样数据就更好了?在表 B 中查找行时已经存在?

sql join foreign-keys unique primary-key

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

MySQL ERROR 1064 (42000) - 即使有反引号

我一定遗漏了一些明显的东西,但仍然......

当我尝试运行以下命令时,我收到 MySQL ERROR 1064 (42000):

CREATE TABLE `mgr_user`
(
    `id` INT NOT NULL AUTO_INCREMENT,
    `customer_id` INT NOT NULL,
    `username` VARCHAR(25),
    `password` VARCHAR(100),

    INDEX(`customer_id`),
    FOREIGN KEY `customer_id` REFERENCES `customer`(`id`) ON UPDATE CASCADE ON     DELETE RESTRICT
 );
Run Code Online (Sandbox Code Playgroud)

mysql foreign-keys

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

在redshift中,如何在创建表后向表中添加多个约束?

在Redshift中,有没有办法为已创建的表添加多个约束?

第一步,创建表(说一个月前)

CREATE TABLE test_user 
(
account_id          BIGINT DEFAULT NULL encode mostly32,
ingest_timestamp    BIGINT DEFAULT NULL ENCODE mostly32,
ingest_date         TIMESTAMP DEFAULT NULL ENCODE delta32k,
user_id             BIGINT NOT NULL encode mostly32,
group_id            BIGINT NOT NULL encode mostly32,
department_id       BIGINT NOT NULL encode mostly32,
name                VARCHAR(255) DEFAULT NULL ENCODE LZO,
mobile              VARCHAR(15) DEFAULT NULL ENCODE LZO,
phone               VARCHAR(15) DEFAULT NULL ENCODE LZO,
user_language       VARCHAR(15) DEFAULT NULL ENCODE runlength,
deleted             INT DEFAULT NULL ENCODE mostly8,
created_at          TIMESTAMP DEFAULT NULL ENCODE delta32k,
updated_at          TIMESTAMP …
Run Code Online (Sandbox Code Playgroud)

foreign-keys alter-table multiple-tables amazon-redshift

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

Django,当使用ForeignKey字段时,哪个更好的是blank = True或null = True?

来自:https : //docs.djangoproject.com/en/2.0/ref/models/fields/#django.db.models.Field.null

避免在基于字符串的字段(例如CharField和TextField)上使用null。如果基于字符串的字段具有null = True,则意味着它具有“无数据”的两个可能值:NULL和空字符串。在大多数情况下,为“无数据”使用两个可能的值是多余的; Django约定是使用空字符串,而不是NULL。

那么在ForeignKey领域上有什么更好的呢?ForeignKey字段不是基于字符串的字段,不是吗?

我想知道 what is convention for ForeignKey in django.

null =真是更好还是空白=真是更好?在性能,便利性或其他方面。

django foreign-keys

1
推荐指数
2
解决办法
864
查看次数

无法插入行并获取外键约束失败错误

我有下表:

CREATE TABLE IF NOT EXISTS profile_claim_ruling_tasks (
    profile_claim_ruling_task_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    account_id BIGINT UNSIGNED NOT NULL,
    profile_id BIGINT UNSIGNED NOT NULL,
    admin_task_status_id BIGINT UNSIGNED NOT NULL,
    profile_claim_ruling_task_ref_id VARCHAR(36) NOT NULL,
    profile_claim_ruling_task_requested_at DATETIME NOT NULL,

    CONSTRAINT pk_profile_claim_ruling_tasks PRIMARY KEY (profile_claim_ruling_task_id),
    CONSTRAINT fk_profile_claim_ruling_task_account_id FOREIGN KEY (account_id) REFERENCES accounts (account_id),
    CONSTRAINT fk_profile_claim_ruling_task_profile_id FOREIGN KEY (profile_id) REFERENCES accounts (profile_id),
    CONSTRAINT fk_profile_claim_ruling_task_admin_task_status_id FOREIGN KEY (admin_task_status_id) REFERENCES admin_task_statuses (admin_task_status_id),

    INDEX idx_profile_claim_ruling_tasks_admin_task_status_id(admin_task_status_id),

    CONSTRAINT uc_profile_claim_ruling_tasks_profile_claim_ruling_tasks_ref_id UNIQUE (profile_claim_ruling_task_ref_id)
);
Run Code Online (Sandbox Code Playgroud)

当我进行以下操作SELECT *accounts

+------------+--------------------------------------+------------+ …
Run Code Online (Sandbox Code Playgroud)

mysql sql foreign-keys sql-insert

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

可选外键

我有一个带有列(整数)的MySQL数据库表,该列用外键引用了另一个表中的列。

我希望该值是可选的。如果我尝试将值更新为0(另一个表中不存在的值),查询将失败。

如何在将列中的值保留为可选的同时使用外键?

mysql foreign-keys

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

Laravel Eloquent orderBy()一对多关系中的父表字段

所以我有桌子questions和桌子steps.该steps可以有很多questions.在question属于一个"台阶".

我有一个step_id在我的领域questions表,这是一个外键id字段在我的steps表.我的表中也有一个number字段stepsid字段没有任何关系.这只是一个数字(1-12).

问题表

---------------------------
| id | step_id | question |
---------------------------
Run Code Online (Sandbox Code Playgroud)

步骤表

-----------------------------
| id | number | description |
-----------------------------
Run Code Online (Sandbox Code Playgroud)

我之间的关系很好,因为我可以创建,更新和删除questions表中的问题.但是,我正在处理索引页面,我想抓住所有问题并按表中的number字段对它们进行排序steps.

我已经完成了一些研究,我从Laracasts中找到了一些代码,但它没有用.网站上没有提供太多信息.我是否需要依赖项才能获得此功能,或者是否有本地方法在laravel中执行此操作.

$questions = Question::join('steps', 'questions.step_id', '=', 'questions.id')
->orderBy('questions.number', 'asc')
->get(['questions.*']);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

未发现柱::SQLSTATE [42S22]在'顺序条款' 1054未知列'questions.number'(SQL:选择questions.*从 questions内连接stepsquestions.step_id= questions.id …

php mysql foreign-keys laravel eloquent

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

重命名Users表中的列时,获取:SQLite3 :: ConstraintException:FOREIGN KEY约束失败:DROP TABLE“ users”

我正在使用Sqlite开发Rails应用程序,并且有一个与其他几个表关联的用户表。尝试在Users中重命名列时,运行rails db:migrate时出现主题错误。

我在这里看到很多类似问题的帖子,但没有一个奏效。具体来说,常见的补救方法似乎是在所有has_many和has_one关联上使用“ dependent::destroy”。我正在这样做,但是仍然出现错误。

我究竟做错了什么?

下面是我的代码:

class User < ApplicationRecord
  devise :database_authenticatable, :registerable,
  :recoverable, :rememberable, :trackable, :validatable

  has_one :profile, dependent: :destroy
  has_many :bikes, dependent: :destroy
  has_many :bookings, dependent: :destroy
  has_many :rented_bikes, through: :bookings, source: :bike
  has_many :conversations, dependent: :destroy
  has_many :likes, dependent: :destroy
  has_many :liked_bikes, through: :likes, :source => :bike
  has_many :viewed_bikes, through: :views, :source => :bike
  has_many :views, dependent: :destroy
  has_many :reviews, dependent: :destroy
end

class Profile < ApplicationRecord
  belongs_to :user
end

class Bike < ApplicationRecord
  belongs_to :user
  has_many …
Run Code Online (Sandbox Code Playgroud)

sqlite ruby-on-rails foreign-keys

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

在Django中建模产品订单

我有一定数量的产品清单,我需要在Django中对其建模。

每个订单都具有以下属性:

id
email
total_price
line_items
Run Code Online (Sandbox Code Playgroud)

line_items是产品和所需产品实例数的字典。

产品是描述一类产品的单独模型。

我需要在产品和订单之间建立多对多关系,因为每个产品可能是许多订单的一部分,但是每个订单可能有很多产品-如果我的订单中有3个实例,这在我的字段中看起来如何?一个产品,另外2个,等等...?

django foreign-keys django-models many-to-one

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