相关疑难解决方法(0)

MySQL:无法创建表(错误号:150)

我试图导入.sql文件,并在创建表时失败.

这是失败的查询:

CREATE TABLE `data` (
`id` int(10) unsigned NOT NULL,
`name` varchar(100) NOT NULL,
`value` varchar(15) NOT NULL,
UNIQUE KEY `id` (`id`,`name`),
CONSTRAINT `data_ibfk_1` FOREIGN KEY (`id`) REFERENCES `keywords` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;    
Run Code Online (Sandbox Code Playgroud)

我从同一个数据库导出.sql,我删除了所有的表,现在我试图导入它,为什么它失败了?

MySQL:无法创建表'./dbname/data.frm'(错误号:150)

mysql sql phpmyadmin mysql-error-150

152
推荐指数
11
解决办法
32万
查看次数

MySQL存储过程与函数,我会在什么时候使用?

我在看MySQL存储过程和函数.真正的区别是什么?

它们似乎相似,但功能有更多限制.

我可能错了,但似乎存储过程可以做所有事情,而存储功能可以做得更多.为什么/何时使用程序与函数?

mysql stored-procedures sql-function

151
推荐指数
4
解决办法
9万
查看次数

MySQL触发器插入/更新事件

所以我有两张这样的桌子......

ext_words
-------------
| id | word |
-------------
| 1  | this |
-------------
| 2  | that |
-------------
| 3  | this |
-------------

ext_words_count
---------------------
| id | word | count |
---------------------
| 1  | this |   2   |
---------------------
| 2  | that |   1   |
---------------------
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个触发器,它将:

  • 更新ext_words_count.countext_words.word更新.

使事情进一步复杂化,

  • 如果ext_words.word在更新ext_words_count时不存在ext_words,我想将其插入ext_words_count并设置count为1.

我一直在寻找类似的问题:
1. 使用自动增量字段插入触发器之前/之后,以及
2. 使用触发器更新另一个数据库中的表来
尝试组合2.这是我到目前为止所拥有的:

DELIMITER $$ …
Run Code Online (Sandbox Code Playgroud)

mysql triggers insert insert-update

27
推荐指数
1
解决办法
7万
查看次数

mysql触发器存储触发器已被调用存储触发器的语句使用

我想设置一个触发器,以便在更新时预测字段为= 3,然后触发器将值更改为4并将其保存在数据库中.触发器如下.

出于某种原因,我不断收到错误说:

#1442 - Can't update table 'tzanalytic\_forecast\_cached' in stored 
function/trigger because it is already used by statement which invoked 
this stored function/trigger.
Run Code Online (Sandbox Code Playgroud)

这是正确的方式吗?

delimiter $$ 
CREATE TRIGGER no_BoW BEFORE UPDATE ON t FOR EACH ROW 
BEGIN set @prediction = new.prediction; 
UPDATE t SET t.prediction = (SELECT IF(@prediction = '3', '4', @prediction)) WHERE t.event_id = new.event_id AND t.price_tier = new.price_tier; END;
$$ delimiter ;
Run Code Online (Sandbox Code Playgroud)

mysql sql triggers mysql-error-1442

11
推荐指数
1
解决办法
2万
查看次数