我无法控制sql查询。
INSERT INTO table (id, name, age) VALUES(1, "B", 20)
应该在mysql服务器端进行更改。是否有可以启用此设置的设置。 ? (无需修改插入查询) id是主键。
{{1}}
上述查询应该将1,A,19行改为1,B,20。
答案 0 :(得分:0)
这可以通过稍微更改查询的语法来实现。有些DB支持这一点。 我在互联网上发现这个需要用MySql验证。
<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.css" rel="stylesheet"/>
<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.42/css/bootstrap-datetimepicker.css" rel="stylesheet"/>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.2/moment.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.2/locale/de.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.42/js/bootstrap-datetimepicker.min.js"></script>
<div class="input-group date" id="datetimepicker">
<input type="text" class="form-control" />
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
在Postgres中,它被称为upsert。
答案 1 :(得分:0)
MySQL支持ON DUPLICATE KEY UPDATE
。这确实需要更改查询。我建议写这个:
INSERT INTO table (id, name, age)
VALUES(1, 'B', 20)
ON DUPLICATE KEY UPDATE name = VALUES(name), age = VALUES(age);
这假定id
被声明为主键或至少unique
。
VALUES
函数是从插入的行中提取新值的便捷方法。