两个表 A 和 B,A 记录包含对 B 记录的引用。
我在 B 中有一些 A 没有使用的记录。
只需在一条 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 中查找行时已经存在?
我一定遗漏了一些明显的东西,但仍然......
当我尝试运行以下命令时,我收到 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) 在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) 来自: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 =真是更好还是空白=真是更好?在性能,便利性或其他方面。
我有下表:
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数据库表,该列用外键引用了另一个表中的列。
我希望该值是可选的。如果我尝试将值更新为0(另一个表中不存在的值),查询将失败。
如何在将列中的值保留为可选的同时使用外键?
所以我有桌子questions和桌子steps.该steps可以有很多questions.在question属于一个"台阶".
我有一个step_id在我的领域questions表,这是一个外键id字段在我的steps表.我的表中也有一个number字段steps与id字段没有任何关系.这只是一个数字(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内连接steps上questions.step_id=questions.id …
我正在使用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) 我有一定数量的产品清单,我需要在Django中对其建模。
每个订单都具有以下属性:
id
email
total_price
line_items
Run Code Online (Sandbox Code Playgroud)
line_items是产品和所需产品实例数的字典。
产品是描述一类产品的单独模型。
我需要在产品和订单之间建立多对多关系,因为每个产品可能是许多订单的一部分,但是每个订单可能有很多产品-如果我的订单中有3个实例,这在我的字段中看起来如何?一个产品,另外2个,等等...?
foreign-keys ×10
mysql ×4
sql ×3
django ×2
alter-table ×1
eloquent ×1
join ×1
laravel ×1
many-to-one ×1
php ×1
primary-key ×1
sql-insert ×1
sqlite ×1
unique ×1