mysql创建布尔字段
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql创建布尔字段相关的知识,希望对你有一定的参考价值。
在mysql数据库中,怎么创建布尔字段啊?
有一个boolen类型,创建后就变成了tinyint,这是怎么一回事啊?
工具/材料:Management Studio。
1、首先在桌面上,点击“Management Studio”图标。
2、然后在该界面中,右键点击数据表“设计”选项。
3、之后在该界面中,添加布尔字段BooleanType,数据类型为“bit”选项。
4、接着在该界面中,点击上方工具栏里“保存”按钮。
5、最后在该界面中,显示布尔字段BooleanType值为。
参考技术A mysql不提供boolen类型, tinyint 就相当于boolen类型了, 里边只能放1 和 0 ,这俩数就相当于boolen的 true和false了不一定非得用boolen 类型的,只要能实现那个效果就行了, 做程序吗 要学会变通追问
是哦,其实我昨天就把该字段类型设为普通的varchar,直接插入true或者false,想等答案出来再更新为boolen。
可能我的方法不如你说的那种好,但也证明了我或多或少还是有那么一点变通能力的,是不。
呵呵,谢谢你的答案!
1代表TRUE,0代表FALSE本回答被提问者采纳 参考技术C MYSQL中有布尔类型吗?追问
创建的时候有,创建完后就变成了tinyint,这个不是我瞎说的
布尔字段 Oracle vs MySQL
【中文标题】布尔字段 Oracle vs MySQL【英文标题】:Boolean field Oracle vs MySQL 【发布时间】:2015-01-24 10:23:28 【问题描述】:我正在使用休眠来创建表。在我的实体中,我有以下字段。当我使用 MySQL 数据库时,此实体已成功创建。但是在 oracle 10g 上它会抛出错误
create table MetaData (ID bigint not null auto_increment, metaDataId varchar(255) not null, parentId bigint not null, locked bit, userId bigint not null, primary key (ID), unique (metaDataId))
java.sql.SQLSyntaxErrorException: ORA-00907: missing right parenthesis
实体:
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorOptions(force = true)
@Table(name = "MetaData", uniqueConstraints = @UniqueConstraint(columnNames = "metaDataId"))
public class MetaData extends SavableEntity
@Column(nullable = false)
private String metaDataId;
@Column(nullable = false)
private Long parentId;
@Column(nullable = false)
private Long userId;
@Column
@Type(type = "boolean")
private boolean locked;
知道可能出了什么问题吗?
【问题讨论】:
LOCKED 是 oracle 中的关键字。可以尝试其他字段名称吗? 【参考方案1】:DATATYPE
与 Oracle
不同。
另外,auto_increment
不在Oracle
中。在11g
和之前的版本中,创建一个SEQUENCE
来填充ID 列,在12c
中,使用IDENTITY COLUMNS
。
SQL> DROP TABLE metadata PURGE;
Table dropped.
SQL>
SQL> CREATE TABLE MetaData
2 (
3 ID NUMBER NOT NULL,
4 metaDataId VARCHAR2(255) NOT NULL,
5 parentId number NOT NULL,
6 locked number,
7 userId number NOT NULL,
8 CONSTRAINT p_id PRIMARY KEY (id),
9 CONSTRAINT u_metadataid UNIQUE (metaDataId)
10 );
Table created.
SQL>
对于ID的auto_increment
,在Oracle 10g
中,需要创建一个sequence
。
在12c
中,您可以拥有IDENTITY COLUMN
。
【讨论】:
我用的是 11g 所以这不是问题【参考方案2】:如果您仔细查看生成的 SQL 语法,您会发现该字段的数据类型已锁定,并且它的名称“已锁定”
create table MetaData (..., **locked bit**, ...)
与例如数据类型为 bigint 的字段 userId
create table MetaData (..., **userId bigint not null**, ...)
由于某些数据库没有实现布尔字段,但您需要编写一些注释来帮助 hibernate 执行转换。
如果要将布尔值存储为 T 或 F,请使用:
@Type(type="true_false")
private Boolean active;
要将它们存储为 1 或 0,请使用:
@Type(type="boolean")
private Boolean active;
先生。 Jake Trent 提供了一篇关于如何执行休眠布尔转换的精彩帖子:http://jaketrent.com/post/hibernate-boolean-conversion/
【讨论】:
以上是关于mysql创建布尔字段的主要内容,如果未能解决你的问题,请参考以下文章