最近很多小伙伴都在问mysql“插入后”触发器基于其他字段来计算一个字段和mysql触发器语句这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展Django模型选择字段-取决于其他字
最近很多小伙伴都在问mysql“插入后”触发器基于其他字段来计算一个字段和mysql触发器语句这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展Django模型选择字段-取决于其他字段的选择、jquery验证仅验证第一个字段 – 其他字段将被忽略、MySQL - 将字段更新为另一个字段的值、mysql DISTINCT 根据某字段去重同时查出其他字段等相关知识,下面开始了哦!
本文目录一览:- mysql“插入后”触发器基于其他字段来计算一个字段(mysql触发器语句)
- Django模型选择字段-取决于其他字段的选择
- jquery验证仅验证第一个字段 – 其他字段将被忽略
- MySQL - 将字段更新为另一个字段的值
- mysql DISTINCT 根据某字段去重同时查出其他字段
mysql“插入后”触发器基于其他字段来计算一个字段(mysql触发器语句)
我正在尝试创建一个触发器,该触发器将根据用户输入的lat / lng列来更新GEOMETRY列。我的触发器看起来像这样-
CREATE TRIGGER `tbl.foo` AFTER INSERT ON `tbl` FOR EACH ROW BEGIN UPDATE tbl SET coord = Point(lng, lat) WHERE id = NEW.id; END
但是,当我插入带有lng,lat值的新行时,出现以下错误-
错误1442(HY000):无法更新存储函数/触发器中的表’tbl’,因为调用该存储函数/触发器的语句已使用该表。
我不能创建这样的触发器吗?如果没有,那么自动化的方法是什么?
答案1
小编典典尝试使用INSERT触发器之前,并修改所需的值,例如-
CREATE TRIGGER trigger1 BEFORE INSERT ON table1 FOR EACH ROWBEGIN SET NEW.column1 = ''another value'';END
编辑
CREATE TABLE table_test_trigger ( id INT(11) NOT NULL AUTO_INCREMENT, a INT(11) DEFAULT NULL, b INT(11) DEFAULT NULL, c INT(11) DEFAULT NULL, PRIMARY KEY (id));DELIMITER $$CREATE TRIGGER trigger1 BEFORE INSERT ON table_test_trigger FOR EACH ROWBEGIN SET NEW.c = NEW.a + NEW.b;END$$DELIMITER ;INSERT INTO table_test_trigger(a, b) VALUES (10, 5);SELECT * FROM table_test_trigger;+----+------+------+------+| id | a | b | c |+----+------+------+------+| 1 | 10 | 5 | 15 |+----+------+------+------+
Django模型选择字段-取决于其他字段的选择
我需要具有2个字段的django modelform,其中第二个字段选择列表取决于在第一个字段中选择的内容。我的模特:
class Offer(BaseModel):
VEHICLE_TYPES = (
('personal','Personal car'),('truck','Truck'),)
vehicle_type = models.CharField(max_length=32,choices=VEHICLE_TYPES,default='personal',verbose_name='Vehicle type')
PERSONAL_MAKES = (
('',''),)
TRUCK_MAKES = (
('',)
make = models.CharField(max_length=32)#what more??
如果vehicle_type设置为 personal, 如何将 make 字段的选择设置为 PERSONAL_MAKES
?我怎样才能做到这一点?在模型级别上可以吗? __
jquery验证仅验证第一个字段 – 其他字段将被忽略
我找到了一些相同的答案 – 没有成功……
这是我写的例子的小提琴
FiddleError
// // jQuery Validate example script // // Prepared by David Cochran // // Free for your use -- No warranties,no guarantees! // $(document).ready(function(){ // Validate // http://bassistance.de/jquery-plugins/jquery-plugin-validation/ // http://docs.jquery.com/Plugins/Validation/ // http://docs.jquery.com/Plugins/Validation/validate#toptions $('.validate').validate({ highlight: function(element) { $(element).parent().removeClass('has-success').addClass('has-error'); },success: function(element) { element.closest().removeClass('has-error').addClass('has-success'); } }); }); // end document.ready`enter code here`
使用:
> Bootstrap
> jQuery
> jQuery验证
解决方法
<div> <labelfor="login_id">Login id:</label> <input type="text"https://www.jb51.cc/tag/required/" target="_blank">required" name="login_id"> </div> <div> <labelfor="password">Password:</label> <input type="password"https://www.jb51.cc/tag/required/" target="_blank">required" name="password"> <div> <a href="#"> Forgot your password? </a> </div> </div>
演示:Fiddle
MySQL - 将字段更新为另一个字段的值
如何解决MySQL - 将字段更新为另一个字段的值?
我正在努力使以下查询正常工作:
UPDATE user_stock SET user_stock1 = user_stock2
WHERE user_stock1 = NULL AND user_id = ''mike'';
该查询被接受,没有语法错误,尽管它没有将 user_stock1 设置为 user_stock2 的值,有什么想法吗?
解决方法
在 SQL 中,列永远不等于 NULL
。您必须使用 IS NULL
或 IS NOT NULL
:
UPDATE user_stock SET user_stock1 = user_stock2
WHERE user_stock1 IS NULL AND user_id = ''mike'';
mysql DISTINCT 根据某字段去重同时查出其他字段
mysql 有个关键字 distinct 用来去重的,但是使用时只能放在查询字段的最前边 , 如: SELECT DISTINCT user_id,age FROM t_user; 若不是放在最前边,如:SELECT user_id, DISTINCT age FROM t_user; 是会报错的。那么如果我们只想根据 age 字段来去重,并且要查出 user_id,就不能直接这样执行。需要另找方法。查阅 mysql 相关使用后,有个 group by 可以进行分组,那么有个思路就是:分组然后去重。具体看这个需求:要查询两个表所有字段内容,并且根据第一张表的主键去重。
去重前 sql:
SELECT
a.album_id, a.album_name, a.view_lock, a.view_issue, a.view_key, a.user_id,
p.photo_id,p.album_id,p.photo_desc,p.photo_url,p.update_time,p.delete_state
FROM album a LEFT JOIN photo p ON a.album_id = p.album_id;
解决:
SELECT
a.album_id, a.album_name, a.view_lock, a.view_issue, a.view_key, a.user_id,
p.photo_id,p.album_id,p.photo_desc,p.photo_url,p.update_time,p.delete_state ,COUNT(DISTINCT a.album_id)
FROM album a LEFT JOIN photo p ON a.album_id = p.album_id GROUP BY a.`album_id`
group by 必须放在 order by 和 limit 之前,不然会报错
今天关于mysql“插入后”触发器基于其他字段来计算一个字段和mysql触发器语句的讲解已经结束,谢谢您的阅读,如果想了解更多关于Django模型选择字段-取决于其他字段的选择、jquery验证仅验证第一个字段 – 其他字段将被忽略、MySQL - 将字段更新为另一个字段的值、mysql DISTINCT 根据某字段去重同时查出其他字段的相关知识,请在本站搜索。
本文标签: