首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

精读《Prisma 使用》

,唯一多出来 posts 与 author 其实是弥补了数据库表关联外键中直观部分,将这些外键转化为实体对象,让操作时感受不到外键或者多表存在,在具体操作时再转化为 join 操作。...@default 设置字段默认值,可以联合函数使用,比如 @default(autoincrement()),可用函数包括 autoincrement()、dbgenerated()、cuid()、uuid...@unique 设置字段值唯一。 @relation 设置关联,上面已经提到过了。 @map 设置映射,上面也提到过了。 @updatedAt 修饰字段用来存储上次更新时间,一般是数据库自带能力。...总结 Prisma Schema 是 Prisma 一大特色,因为这部分描述独立于代码,带来了如下几个好处: 定义比 Node Class 更简洁。 生成冗余代码结构。...不过对于记录创建,更喜欢 Prisma API: // typeorm - save API const userRepository = getManager().getRepository(

3.4K30

适用于Node.js和TypeScript完整ORM —— Prisma

它包含以下工具: Prisma Client——自动生成且类型安全数据库客户端 Prisma Migrate——声明式数据建模和自定义迁移 Prisma Studio——现代化用户界面,可查看和编辑数据...在 Prisma,我们发现 Node.js 生态系统虽然在构建数据库支持应用程序中越来越流行,但并未应用程序开发人员提供处理这些任务现代工具。...Prisma Client 没有模型实例概念。相反,它有助于制定始终返回纯 JavaScript 对象数据库查询。多亏了生成类型,可以为查询获得了自动补全功能。...我们还会尝试通过专门社区支持团队,在开发人员提出关于 Prisma 任何问题时,无论是在 Slack,GitHub 讨论区还是 Stackoverflow 上,都可以为他们提供帮助。...iopool blog——iopool 如何使用 Prisma 在不到 6 个月时间内重构其应用程序 Talk——Prisma 在 ipool 从原型到开发再到生产 最好开发者工具是那些走寻常路工具

1.7K50
您找到你想要的搜索结果了吗?
是的
没有找到

【译】适用于Node.js和TypeScript完整ORM —— Prisma

它包含以下工具: Prisma Client——自动生成且类型安全数据库客户端 Prisma Migrate——声明式数据建模和自定义迁移 Prisma Studio——现代化用户界面,可查看和编辑数据...在 Prisma,我们发现 Node.js 生态系统虽然在构建数据库支持应用程序中越来越流行,但并未应用程序开发人员提供处理这些任务现代工具。...Prisma Client 没有模型实例概念。相反,它有助于制定始终返回纯 JavaScript 对象数据库查询。多亏了生成类型,可以为查询获得了自动补全功能。...我们还会尝试通过专门社区支持团队,在开发人员提出关于 Prisma 任何问题时,无论是在 Slack,GitHub 讨论区还是 Stackoverflow 上,都可以为他们提供帮助。...iopool blog——iopool 如何使用 Prisma 在不到 6 个月时间内重构其应用程序 Talk——Prisma 在 ipool 从原型到开发再到生产 最好开发者工具是那些走寻常路工具

1.7K01

MySQL 数据类型属性 约束 三大范式

表头 字段名1 字段名2 数据单元 数据1 数据2 如: 学号 姓名 专业 201911250101 小王 软件技术 MySQL中数据类型属性 MySQL 关键字 含义 null 数据包含...通常在数据表中将一个字段或多个字段组合设置各种不同值,以便能唯一标识表中每一条记录(保证数据唯一性),这样字段或多个字段成为数据表主键。...4、非空约束(not null) 指定为not null 字段 不能输入 null值。 数据表中null值 通常表示值未知或未定义,null值不同于 0、空格、或长度0字符串。...默认情况下、指定非空约束、所有字段名都可以为null。 5、默认值约束 默认值约束表示当数据表中某个字段不输入值时,自动其添加一个已经设置值。...(自定义默认值) 数据库设计三大范式 第一范式: 数据表中每一属性都是不可再分属性性,确保**每一原子性**。

1.2K20

为什么数据库字段要使用NOT NULL

但是,考虑下原因,为什么设置成NOT NULL?...如果设置NOT NULL的话,NULL默认值,如果不是本身需要的话,尽量就不要使用NULL 使用NULL带来更多问题,比如索引、索引统计、值计算更加复杂,如果使用索引,就要避免设置NULL...而言,如果主动设置NOT NULL的话,那么插入数据时候默认值就是NULL。...对于现状大部分使用MyBatis情况来说,建议使用默认生成insertSelective方法或者纯手动写插入方法,可以避免新增NOT NULL字段导致默认值生效或者插入报错问题。...最后就是每值。 为了说明清楚这个存储格式问题,弄张表来测试,这张表只有c1字段是NOT NULL,其他都是可以为NULL。 ?

1.8K20

时间戳,这样用就对了

此变量自MySQL 5.6.6 版本引入,分为全局级别和会话级别,动态更新,默认值OFF,关于该参数更多内容可以查看这篇文章。...当explicit_defaults_for_timestamp参数默认设置OFF时,其行为如下: 在默认情况下,如果timestamp没有显式指明null属性,那么该会被自动加上not null...属性(而其他类型如果没有被显式指定not null,那么是允许null),如果往这个中插入null值,会自动设置current timestamp值。...对于其它TIMESTAMP,如果没有显示指定NULL和DEFAULT属性的话,会自动设置NOT NULL DEFAULT '0000-00-00 00:00:00'。...当explicit_defaults_for_timestamp参数设置ON时,其行为如下: 如果timestamp没有显式指定not null属性,那么默认以为null,此时向该中插入

83330

MySQL删除约束_mysql查看表字段

大家好,又见面了,是你们朋友全栈君。...从而符合该字段达到我们期望效果,如果插入数据不满足约束要求,数据库管理系统就会拒绝执行SQL 操作 常见约束有 约束条件含义NOT NULL约束字段值不能为空DEFAULT约束字段默认值UNIQUE...非空约束 (not null) 非空约束即字段内容希望设置空; CREATE TABLE (字段名 数据类型 NOT NULL); #修改数据类型时也添加约束 2.默认约束(default) 字段设置默认值...唯一约束(Unique Key) Unique Key 约束字段,值唯一,允许空,唯一约束可以确保一或者多不出现重复值 #创建表时添加唯一约束 CREATE TABLE (字段 数据类型 UNIQUE...key ,比如primary key 自增长字段默认从1开始,默认步长1 自增长字段在插入数据时可以指定该字段值null值 CREATE TABLE (字段名 数据类型 primary key

2.6K30

Mysql索引失效场景

索引失效分析工具: 可以使用explain命令加在要分析sql语句前面,在执行结果中查看key这一值,如果NULL,说明没有使用索引。...在索引列上使用 IS NULL 或 IS NOT NULL操作。...(索引是索引空值,所以这样操作不能使用索引,可以用其他办法处理,例如:数字类型,判断大于0,字符串类型设置一个默认值,判断是否等于默认值即可。) ?...如果条件中有or,即使其中有部分条件带索引也不会使用(这也是为什么尽量少用or原因),例子中user_id无索引 注意:要想使用or,又想让索引生效,只能将or条件中每个都加上索引 ?...3) 字段不在where语句出现时不要添加索引,如果where后含IS NULL /IS NOT NULL/ like ‘%输入符%’等条件,建议使用索引 只有在where语句出现,mysql才会去使用索引

6.6K40

explicit_defaults_for_timestamp参数详解

此变量自MySQL 5.6.6 版本引入,分为全局级别和会话级别,动态更新,默认值OFF。本文主要介绍该参数打开和关闭情况下对timestamp影响 。...not null属性(而其他类型如果没有被显式指定not null,那么是允许null),如果往这个中插入null值,会自动设置current timestamp值。...(当然,这个与SQL_MODE有关,如果SQL_MODE中包含'NO_ZERO_DATE',实际上是不允许将其默认值设置'0000-00-00 00:00:00'。)...如果向timestamp这个中插入null值,系统会自动设置current timestamp值。...2.explicit_defaults_for_timestamp = ON 当该参数设置ON时,其行为如下: 如果timestamp没有显式指定not null属性,那么默认以为null

4.4K50

explicit_defaults_for_timestamp参数导致复制中断

null值,会自动设置current timestamp值。...TIMESTAMP如果没有显式声明NOT NULL属性(或显示声明NULL属性),那么默认以为NULL 1)此时向该中插入null值时,会直接记录null 测试1: ?...id=1行,往timestamp插入null值时,会自动设置current time id=2行,插入时未指定值timestamp中被插入了0000-00-00 00:00:00...=1时,即启用标准特性 TIMESTAMP如果没有显式声明NOT NULL属性(或显示声明NULL属性),那么默认以为null 1)此时向该中插入null值时,会直接记录null,而不是current...解决: 修改二级从库explicit_defaults_for_timestamp=0,往timestamp数据类型插入null值时,会自动设置current time(需要重启mysql服务后恢复

1.4K50

快速入门Tableau系列 | Chapter02【数据前处理、折线图、饼图】

5、绘制折线图 绘制折线图一般步骤: 1、把各自需要用到部分拉到对应地方 2、删除NULL点 3、设置标签格式 5.1 绘制电影数量变化折线图 ①移动对应部分到行和,以及标签:...5.2 电影票房变化折线图 ①移动对应部分到行和,以及标签: ? 上图所示,有的人会问:已经把所需要标签拉进去了啊,但是为什么出来结果不是想要呢?这时他们会想怎么解决。...②点击横坐标NULL点,排除掉: ? 删除Null值以后会发现图形有点不合适,这时可以点击上图所示整个视图来让图形显示更合理。...③设置标签格式:点击“ 总计(累计票房(万)) ”下拉列表->设置格式->(区->默认值->数字)->数字(自定义)->小数位数0、单位千 ?...5、将小饼颜色等级拖走,中间变灰。再选择颜色白 ? ? 6、调整小饼图大小,添加数据项 ? ? 那么为什么推荐用自动做饼图呢?我们看下面 ?

2.7K31

DECLARE在SQL中用法及相关等等

= value 以内联方式变量赋值。值可以是常量或表达式,但它必须与变量声明类型匹配,或者隐式转换为该类型。 @ cursor_variable_name 游标变量名称。...允许约束类型只包括 PRIMARY KEY、UNIQUE、NULL 和 CHECK。如果类型绑定了规则或默认定义,则不能将别名数据类型用作标量数据类型。...DEFAULT 定义适用于除定义 timestamp 或带 IDENTITY 属性以外任何。删除表时,将删除 DEFAULT 定义。...只有常量值(如字符串)、系统函数(如 SYSTEM_USER())或 NULL 可用作默认参数。为了与 SQL Server 早期版本兼容,可以为 DEFAULT 分配约束名称。...constant_expression 用作默认值常量、NULL 或系统函数。 IDENTITY 指示新是标识。在表中添加新行时,SQL Server 将为提供一个唯一增量值。

2.7K20

django 外键引用自身和on_delete参数

SET_NULL设置空。如果外键那条数据被删除了,那么在本条数据上就将这个字段设置空。如果设置这个选项,前提是要指定这个字段可以为空。 SET_DEFAULT:设置默认值。...如果外键那条数据被删除了,那么本条数据上就将这个字段设置默认值。如果设置这个选项,== 前提是要指定这个字段一个默认值 ==。 SET():如果外键那条数据被删除了。...== 可以不用指定默认值 == DO_NOTHING:采取任何行为。一切全看数据库级别的约束。...; NOACTION:同 RESTRICT效果一样,也是首先先检查外键; CASCADE:父表delete、update时候,子表会delete、update掉关联记录; SET NULL:父表delete...、update时候,子表会将关联记录外键字段所在设为null,所以注意在设计子表时外键不能设为not null为什么在django中可以是用不同约束去操作数据库呢。

1.3K20

新增字段一点一滴技巧

(下篇)》 巧了,这次上线同样有个需求,向大表增加一个字段,未设置非空约束,但是设置默认值null,符合(2)条件,本以为这是有问题,但是,实际上,结论不太对,他执行时间,非常短,所以(2)应该加例外...,即如果使用非空默认值,同时,没设置NOT NULL非空约束方式新增字段,那么执行时间会很久,取决于表中数据量大小。...12c中描述允许字段,若有默认值,不会更新已存数据,而是会借助数据字典完成存储,这种新特性适用范围更广了, ?...p=1560)发表了篇文章,在Oracle 12c版本中,论证了对不存在非空约束添加默认值时,采用同样方式,只会更新数据字典,之后新数据才会更新,不会update之前现有数据,效率非常高, ?...albert还从执行计划角度补充了,如果更新,读取数据时会有nvl或者decode函数开销, (1) 11g add defualt ?

1.1K20

MySQL数据库设计和命令行模式下建立详细过程

学生表设计: 字段(Field) 类型(Type) 空(Null) 键(Key) 默认值(Default) 其他(Extra) 学号(studentNo) VARCHAR(12) N PRI NULL...major) VARCHAR(12) N N NULL 性别(gender) Boolean N N NULL 课程表设计: 字段(Field) 类型(Type) 空(Null) 键(Key...) 空(Null) 键(Key) 默认值(Default) 其他(Extra) 编号(id) INT Unsigned N PRI NULL auto_increment 学号(studentNo)...外键(Foreign Key):表外键是另一表主键, 外键可以有重复, 可以是空值。 唯一键( Unique Key):唯一标识一条记录,不能有重复,可以为空。...唯一键可以起到唯一约束作用,当然主键也可以起到唯一约束作用。当然我们可以建立唯一键和主键,直接指定数据表添加唯一约束。唯一约束保证指定值不能重复。

2.1K00

DQL、DML语句

默认值: 给设置一个默认值后,这个所有值如果不进行修改的话就是这个设置值,设置默认值关键字是DEFAULT。 代码示例: ? 运行结果: ?...自动编号: 对某个设置自动编号后,这个值会因为自动编号而自动增长。但是自动编号只能在数值类型设置,因为我们都知道字符or文本类型是无法想数字一样自动增长。...自动编号关键字是AUTO_INCREMENT。 代码示例: ? 运行结果: ? 表结构: ? 表中类都有特征也可以说是属性,例如设置默认值、自动编号等,这些就是特征。...给设置null特征,代表着此列值可以为空,反之给设置not null特征,代表着此列值不可以为空。 代码示例: ?...使用插入语句时要注意自动编号可以忽略写,如果某个特征not null的话,插入数据时就必须得往这个插入数据,不然就会出现错误。

72710

SQL Server表设计(建表)

image:大约存储20亿个二进制数据 2、默认值 在插入数据是如果对一行某一没有键入数据(留空)而且设置默认值,那么这一就会使用默认值。...,在表设计器中找到“标识规范”-将选项改为“是”即可 7、对于一个班级同学,我们可以将所在班级设置一个默认值。...这样写数据时候如果写所在班级系统就会自动填写上我们指定默认值。 8、右键点击空白处-可以新建check约束,这样就可以限制数据写入了。...9、这里限制是成绩,填写表达式,关闭即可。其他约束类似。...首先 create 是创建意思,table即表,name是给表起名字。后面跟上(),()内内容就是表每一;其中第一个字段名字,然后是数据类型,后面的是否允许空值null

3.2K20

【MySQL】表约束

null ); 下面我们查看表结构,我们可以看到 Null 内容 NO,即插入数据不能为空: 接下来我们插入几组数据测试: 我们可以看到,当班级名或者教室名其中一个空都不能插入。...二、默认值 默认值:某一种数据会经常性出现某个具体值,可以在一开始就指定好,在需要真实数据时候,用户可以选择性使用默认值默认值关键字 default....,我们就可以看到 Default 这一就给我们加上了默认值默认值生效:数据在插入时候不给该字段赋值,就使用默认值: 注意:只有设置了 default ,才可以在插入值时候,对进行省略。...当用户忽略了这一时候,如果设置了 default,就是用默认值,如果没有设置,就直接报错,因为有 not null 约束。...;为什么是这样呢?

9910
领券