草庐IT

columns-table

全部标签

MySQL : loop over tables and alter table add index

我有大约1000个以相同前缀开头的表:table_prefix_{SOME_ID}(我可以从另一个表中获取ID)遍历所有mysql中的表并执行以下操作的快速方法是什么:ALTERTABLE`table_prefix_{some_id}`ADDINDEX`fields`(`field`) 最佳答案 忘记循环。只需这样做:selectconcat('altertable',a.table_name,'addindex`fields`(`field`);')frominformation_schema.tablesawherea.tabl

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 - 使用alter table添加分区失败

我有一个结构如下的表:CREATETABLE`child_table`(`id`int(11)NOTNULLAUTO_INCREMENT,`value`int,`ref_id`int,PRIMARYKEY(`id`),KEY`ref_id`(`ref_id`),CONSTRAINT`FK4E9BF08E940F8C98`FOREIGNKEY(`ref_id`)REFERENCES`parent_table`(`id`)ONDELETECASCADE)运行语句添加分区时,失败并显示错误:ERROR1217:Cannotdeleteorupdateaparentrow:aforeignke

php - Doctrine 迁移 : adding and removing two foreign key columns to existing table is not working

我有现有的表pricing,在迁移脚本中我想添加两个新列pricing_set_id和coe_id,它们都是外键.在up函数上,它运行完美,没有任何错误,但是当我运行down函数时,它出现了错误。我的代码如下。在up函数上:$pricingTable=$schema->getTable('pricing');$pricingSetTable=$schema->getTable('pricing_set');if(!$pricingTable->hasColumn('pricing_set_id')){$pricingTable->addColumn('pricing_set_id','

java - 奇怪的 SQLException : Column not found

我在使用JDBC对数据库运行的函数上遇到了一个奇怪的SQLException。SQLException:找不到列“消息”。我的函数中有这个:st=con.prepareStatement("SELECTNotificationID,UserIDFrom,UserIDTo,Message,Timestamp,isNotifiedFROMnotificationWHEREUserIDTo=?ANDisNotified=?");st.setInt(1,_UserID);st.setBoolean(2,false);System.out.println("stis:"+st);rs=st.ex

mysql - 错误 1366 - 不正确的十进制值 : '' for column '' at row -1

我有一个相当大的查询,它试图获取承运人列表并比较他们记录在案的保险金额,以确定未达到最低阈值的承运人。如果我运行select查询,它工作正常,没有错误。但是当我尝试将它用于插入到表中时,它会返回此错误消息[Err]1366-不正确的十进制值:''forcolumn''atrow-1我必须在此查询的底部使用转换为十进制,因为存储在数据库中的值是一个varchar,我无法更改它。有人有什么想法吗?set@cw_days=15;INSERTINTOcarrier_dnl(carrier_id,dnl_reason_id,status_id)SELECTwork_cw_carrier_stat

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

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

MySQL : Selecting values from a specific column is very slow

我有一个名为key_word的mysql数据库。它有3列,2300万行。请看下面的查询。SELECT`indexVal`FROM`key_word`WHERE`hashed_word`='001'此查询大约需要6秒才能显示结果。结果包含169669行。这非常非常慢。但是,我注意到这种情况“仅”在我尝试获取indexVal中的记录时发生。以下所有查询都非常快。SELECT`primary_key`FROM`key_word`WHERE`hashed_word`='001'SELECT`hashed_word`FROM`key_word`WHERE`indexVal`=0所有这3列都是单独

MySQL 优化 : EXPLAIN "Extra" column contains "Using Where"

所以我一直认为在Extra栏中看到“UsingWhere”是一件好事。然而,我正计划为我的同事提供一个棕色袋子午餐来解释EXPLAIN,现在我不太确定了。MySQL文档在关于“UsingWhere”的注释中这样说:AWHEREclauseisusedtorestrictwhichrowstomatchagainstthenexttableorsendtotheclient.Unlessyouspecificallyintendtofetchorexamineallrowsfromthetable,youmayhavesomethingwronginyourqueryiftheExtra

mysql - 在 MySQL 中使用 ALTER TABLE 建立索引需要多长时间?

这可能有点像询问字符串的长度,但统计数据是:Intel双核4GB内存表有800万行,约20列,主要是带有auto_incrementprimaryid的varchars查询是:ALTERTABLEmy_tableADDINDEXmy_index(my_column);我的列是varchar(200)存储是MyISAM数量级,应该是1分钟、10分钟、100分钟?谢谢编辑:好的,它花费了2小时37分钟,而在基本相同的设置下,一台规范较低的机器上花费了0小时33分钟。我不知道为什么要花这么长时间。唯一的可能是产品机HD已满85%,还有100GB可用空间。应该足够了,但我想这取决于可用空间的分