GVKun编程网logo

mysql“插入后”触发器基于其他字段来计算一个字段(mysql触发器语句)

22

最近很多小伙伴都在问mysql“插入后”触发器基于其他字段来计算一个字段和mysql触发器语句这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展Django模型选择字段-取决于其他字

最近很多小伙伴都在问mysql“插入后”触发器基于其他字段来计算一个字段mysql触发器语句这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展Django模型选择字段-取决于其他字段的选择、jquery验证仅验证第一个字段 – 其他字段将被忽略、MySQL - 将字段更新为另一个字段的值、mysql DISTINCT 根据某字段去重同时查出其他字段等相关知识,下面开始了哦!

本文目录一览:

mysql“插入后”触发器基于其他字段来计算一个字段(mysql触发器语句)

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模型选择字段-取决于其他字段的选择

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验证仅验证第一个字段 – 其他字段将被忽略

jquery验证仅验证第一个字段 – 其他字段将被忽略

我正在使用 jQuery validation plugin,它应该验证表单中的所有输入,但它会在第一个输入中停止.如果你点击第二个输入并将其留空 – 一切正常 – 它验证…否则 – 不…

我找到了一些相同的答案 – 没有成功……

这是我写的例子的小提琴

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验证

解决方法

使用字段名称而不是id

<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 - 将字段更新为另一个字段的值

如何解决MySQL - 将字段更新为另一个字段的值?

我正在努力使以下查询正常工作:

UPDATE user_stock SET user_stock1 = user_stock2 
WHERE user_stock1 = NULL AND user_id = ''mike'';

该查询被接受,没有语法错误,尽管它没有将 user_stock1 设置为 user_stock2 的值,有什么想法吗?

解决方法

在 SQL 中,列永远不等于 NULL。您必须使用 IS NULLIS NOT NULL

UPDATE user_stock SET user_stock1 = user_stock2 
WHERE user_stock1 IS NULL AND user_id = ''mike'';

mysql DISTINCT 根据某字段去重同时查出其他字段

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 根据某字段去重同时查出其他字段的相关知识,请在本站搜索。

本文标签: