草庐IT

auto_created

全部标签

java - Hibernate hbm2ddl.auto 更新不会删除带有 mysql 的列

它添加了新的,但据我所知它并没有删除旧的?当我说旧的时,我指的是现在完全删除的实体对象的属性,以前它们存在并用@column注释我唯一的选择是手动删除col还是将配置值更改为create?两者都不是特别迷人。还是别的什么? 最佳答案 无论如何,永远不要在任何实时/生产数据库上使用hbm2ddl.auto。是的,“更新”不会删除任何未引用的列,这是“按预期工作”(可能允许您使用“旧版”数据库,其中包含您的hibernate应用程序未使用的列,但是可以被外部应用程序使用)。但是,在某些情况下,hibernate可以删除并重新创建列,例如

php - 如何使用 doctrine2 设置初始 auto_increment 值

我使用doctrine2映射器生成我的innoDB(mysql)数据库。如何使用php注释设置我的auto_incrementedid的初始值?这就是我目前为实体类型的id建模的方式。/***@varinteger$_id**@Column(name="id",type="integer",nullable=false)*@Id*@GeneratedValue(strategy="IDENTITY")*/private$_id;我在文档中找到了以下代码,但它看起来好像会使用单独的表来生成ID。/***@Id*@GeneratedValue(strategy="SEQUENCE")*@C

mysql - 如何从另一个表设置 AUTO_INCREMENT

如何在另一个表的CREATETABLE或ALTERTABLE上设置AUTO_INCREMENT?我发现了这个问题,但没有解决我的问题:HowtoResetanMySQLAutoIncrementusingaMAXvaluefromanothertable?我也试过这个:CREATETABLEIFNOTEXISTS`table_name`(`id`mediumint(6)unsignedNOTNULLAUTO_INCREMENT,`columnOne`tinyint(1)NOTNULL,`columnTwo`int(12)NOTNULL,PRIMARYKEY(`id`))ENGINE=M

mysql - 在 MySQL 模式中, "AUTO_INCREMENT=3"的含义是什么

这是一个MySQL表创建的模式。最后一行的AUTO_INCREMENT=3是什么意思?CREATETABLEIFNOTEXISTS`test_b`(`ID_b`int(10)unsignedNOTNULLAUTO_INCREMENT,`stuff`varchar(1000)COLLATEutf8_unicode_ciDEFAULTNULL,PRIMARYKEY(`ID_b`))ENGINE=InnoDBDEFAULTCHARSET=utf8COLLATE=utf8_unicode_ciAUTO_INCREMENT=3; 最佳答案 这

sql - 如何将 SQL 中的主键更改为 auto_increment?

我在MySQL中有一个表有一个主键:mysql>descgifts;+---------------+-------------+------+-----+---------+-------+|Field|Type|Null|Key|Default|Extra|+---------------+-------------+------+-----+---------+-------+|giftID|int(11)|NO|PRI|NULL|||name|varchar(80)|YES||NULL|||filename|varchar(80)|YES||NULL|||effectiveTi

mysql - 为什么存在唯一索引时MySQL Innodb "Creating sort index"?

在一个简单但非常大的Innodb表上,我在A列上有一个唯一索引,我想按照(整数)列A的顺序获取(整数)列B的列表非常简单的查询,我正在分页数百万条记录。SELECTBFROMhugeTableORDERBYALIMIT10000OFFSET500000在非常快的服务器上每次查询需要10秒?文件排序:是Filesort_on_disk:是Merge_passes:9这对我来说毫无意义,为什么它不能使用IndexA?Explain显示简单,没有可能的键和文件排序。 最佳答案 如果B列的值在索引页中不可用,则MySQL将需要访问基础表中的

MYSQL 和 innoDB 动态改变表的 AUTO_INCREMENT

我有一个问题,例如在我的系统中我有下一张表:CREATETABLE`sales`(`id`int(11)NOTNULLAUTO_INCREMENT,`amount`FLOATNOTNULL,PRIMARYKEY(`id`))ENGINE=InnoDB;--ismorecomplextable含内容:+-----+-------+|id|amount|+-----+-------+|2023|100||2024|223||2025|203||...||2505|324|+-----+-------+我不知道现在的id(每天都有销售)。我正在尝试规范化表格。UPDATEsalesSETid

mysql - 外键约束失败,错误代码为 "Error creating foreign key on [table] (check data types)"

以下查询失败并出现错误“在城市上创建外键时出错(检查数据类型)”:ALTERTABLE`hotels`ADDFOREIGNKEY(`city`)REFERENCES`mydatabase`.`cities`(`id`)ONDELETECASCADEONUPDATECASCADE;基本上我想在city.id和hotels.city之间建立一对多关系。这是两个表:CREATETABLEIFNOTEXISTS`cities`(`id`int(11)NOTNULLAUTO_INCREMENT,PRIMARYKEY(`id`))ENGINE=InnoDB;CREATETABLEIFNOTEXIS

mysql - 在表上执行 CREATE TRIGGER 时如何删除默认的 DEFINER?

我正在推出一些软件的更新,其中包括运行SQL脚本来创建触发器。在我的.sql文件语法中,我没有包含任何DEFINER子句,因为我希望我客户的生产MySQL用户(他们自己设置)能够在程序正在运行。事实是,测试表明MySQL会自动为TRIGGER创建一个DEFINER,带有'CURRENT_USER'@'%'。当你做明智的事情,并使用一个(受限)帐户进行日常数据操作,另一个帐户进行大更新(root?)时,你最终会尝试与一个或多个没有权限的用户一起执行TRIGGER去做。有没有办法删除这个“自动添加定义器”功能?我尝试输入DEFINER='%'@'%'但这不被接受。

php - 如何在子查询中使用 SHOW CREATE TABLE?

我正在尝试完成这样的事情:SELECT*FROMinformation_schema.`tables`JOIN(SHOWCREATETABLE)#有没有一种方法可以在一个查询中执行此操作? 最佳答案 没有办法以这种方式做到这一点。SHOWCREATETABLE命令检索数据集,但结果无法与另一个表连接。将SHOWCREATETABLE作为应用程序中所需的每个表的单独命令执行。 关于php-如何在子查询中使用SHOWCREATETABLE?,我们在StackOverflow上找到一个类似的问