我正在创建一个带有id和字符串的表abc。该字符串是唯一的,我希望为该字符串分配散列索引。
CREATE TABLE abc(
id int unique auto_increment primary key ,
unique_str varchar(40) not nulL,
CONSTRAINT is_unique UNIQUE (unique_str)
);
create index string_index using hash on abc(unique_str);
show index from abc;
但是输出显示BTREE被用于索引,尽管我已经定义
如何使用触发器预置列的值?我使用的是MySQL 5.5.54。
编辑。如果我删除c2上的NOT NULL约束,它似乎可以工作。
mysql> USE mydb;
Database changed
mysql> INSERT INTO t(c1) VALUES(123);
ERROR 1364 (HY000): Field 'c2' doesn't have a default value
mysql>
模式:
-- MySQL Script generated by MySQL Workbench
-- 02/21/17 08:26:27
-- Mod
我正在使用apache derby jdbc (在netbeans 7.2.1中),我希望创建具有复合主键的表(这样,只有这4列值的组合是唯一的,而它们各自的值不是唯一的)。
Create table MovieScreens(
NameM varchar(255) NOT NULL UNIQUE,
DateS DATE NOT NULL UNIQUE,
Hall NUMERIC NOT NULL UNIQUE,
HourS NUMERIC NOT NULL UNIQUE,
SEATSFREE varchar (500) NOT NULL,
FOREIGN KEY (Hall) RE
我的表有四列city、zipcode、number和extra。我为city、zipcode和number创建了一个名为unique1的独特组,为city、zipcode、number和extra创建了另一个名为unique2的组。这些组需要是唯一的,但问题是,当extra不同或为null时,我可以具有非唯一值。例如:
city | zipcode | number | extra
A 123 123 null
A 123 123 10 (I cant add this row because of the uniqu
我正在使用MySQL工作台通过EER图创建一个数据库结构。完成后,我使用正向工程函数创建了我的模型的sql文件:。
当我试图在MySQL服务器上部署这个查询时,它一直给我mysql错误:错误1215:无法添加外键约束。
有人能帮帮我吗?
-- MySQL Workbench Forward Engineering
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD
可以在MySQL中创建原子事务吗?
假设我有一个表'category‘,其中包含以下行:
id|name
--|---------
1 |'tablets'
2 |'phones'
列name是我的主键。
如果我尝试:
START TRANSACTION;
update "category" set name = 'phones' where id = 1;
update "category" set name = 'tablets' where id = 2;
COMMIT;
我得到了:
我为将ignore添加到MySql数据库添加了这一行:
ALTER IGNORE cms_books_author name ADD UNIQUE(name)
但我知道这个错误:
Error
SQL query:
ALTER IGNORE cms_books_author name ADD UNIQUE(name)
MySQL said: Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for
我希望在类似于下面的PostgreSQL的MySQL中创建查询:
CREATE FUNCTION check_unique_pair(IN id1 INTEGER, IN id2 INTEGER) RETURNS INTEGER AS $body$
DECLARE retval INTEGER DEFAULT 0;
BEGIN
SELECT COUNT(*) INTO retval FROM (
SELECT * FROM edges WHERE a = id1 AND b = id2
UNION ALL
SELECT * FROM edges WHERE a = id2
我正在从MySQL迁移到SQL Server2012,但遇到了麻烦。问题是我使用UNIQUE命令有几个表,并且我试图将它们转换为SQL Server语法等价的表,但是当我试图用相同的唯一字段名创建第二个表时,就会出现这个错误。我怎么才能修复它呢。
Msg 2714, Level 16, State 5, Line 1
There is already an object named 'Codigo' in the database.
Msg 1750, Level 16, State 0, Line 1
Could not create constraint. See prev
当运行下面的code...what出错时,我会得到以下错误?
错误代码:1170。BLOB/TEXT列‘message’在密钥规范中使用,没有密钥长度。
-- MySQL Script generated by MySQL Workbench
-- Sun Jun 4 21:25:42 2017
-- Model: New Model Version: 1.0
-- MySQL Workbench Forward Engineering
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @
我试图应用中描述的解决方法,但没有成功。
在我的场景中,有两个相关的表;我希望将ean_code字段从表product中删除。
创建表brand ( id bigint(20) NOT NULL AUTO_INCREMENT,name varchar(512) NOT NULL,主键(id) ) ENGINE=InnoDB默认CHARSET=utf8创建表product ( id bigint(20) NOT NULL AUTO_INCREMENT,name varchar(255) NOT NULL,ean\_code varchar(255)默认值NULL,brand\_id bigin
我目前正在尝试使用MySQL工作台的前向工程师向导创建我的数据库,但我得到了以下错误:
Executing SQL script in server
ERROR: Error 1005: Can't create table 'microweb.users' (errno: 121)
CREATE TABLE IF NOT EXISTS `microweb`.`users` (
`user_id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`role_id` INT UNSIGNED NOT NULL ,
`user
我是MySQL的新手,我正在创建一个复杂的EER图。在创造之后,我“前进工程师.”该模型并命中可怕的错误:错误1005:无法创建表'xxx.xxx‘(errno: 121)。我创建了另一个具有1:M关系的表的简化模型,但对主键名和外键名称使用了"id_“。起作用了。
i.e.
TABLE_A
id_TABLE_A INT
TABLE_B
id_TABLE_B INT
id_TABLE_A INT
其中,TABLE_A 1--<M TABLE_B之间有一对多的关系,而TABLE_B.id_TABLE_A是外键
在查看复杂的EER图时,我注意到我对主键和外键名称
我创建了一个表,并将一个UNIQUE CONSTRAINT分配给一个特定的列。
... column_name INT UNSIGNED NOT NULL UNQUE
现在,我不再希望该列具有唯一的约束,因此我尝试修改它:
ALTER TABLE mytable DROP INDEX column_name
就像我看到一样。
上面的查询第一次成功执行。但是,当我尝试在column_name列中插入重复值时,仍然会得到错误
#1062 Duplicate entry '10' for key column_name_2
我想,这意味着约束仍然存在。( _2如何被附加到列名中也很有
当我尝试设计db结构时,我发现innodb相当烦人,至少与MyIsam相比,后者似乎没有那么多限制。
比如说,如果我想创建一个简单的库系统。我有四张桌子。
表book_item,它记录了book_name、作者、出版时间以及有关书籍的基本信息。
表book,它表示图书项的一个特定的真实对象。因此,book_item对象可以与许多图书对象相关联。
表tag,表示图书标签。比如科学,文学,建筑等等。
表tag_book_item_relation,它将标记与book_items联系起来。
因此,两国关系如下。
1、我们有一个图书项目 to book is 一对多关系。
2、many-to-many
使用MySQL,我尝试创建一个包含多个字段的组合键的表。 问题是有些字段很大(255 - 1024长度),如果我尝试运行迁移,我将得到: django.db.utils.OperationalError: (1071, 'Specified key was too long; max key length is 767 bytes') 我发现我可以限制迁移文件中用作键的字段的值,使其保持在最大键长度内,而不是增加DB的键长度(或更改某些其他DB/表设置),如下所示: ALTER TABLE <table> ADD UNIQUE KEY `<table>