【问题标题】:How to UPDATE a field with a BIT datatype in mysql如何在mysql中更新具有BIT数据类型的字段
【发布时间】:2013-12-05 17:43:26
【问题描述】:

我想更改数据库中某项的可用性。

<td><select name="avl">
    <option value="1" name="true ">Available</option>
    <option value="0" name="false">Unavailable</option>
    </select>
</td>

这是我更新字段的sql语句。

<sql:update dataSource="${dbsource}" var="count">
    UPDATE restaurant SET available = ? WHERE idrestaurant ='${param.id}'
    <sql:param value="${param.avl}" />
</sql:update>

我的 FIELD 可用数据类型是 BIT。

但是我得到了这个错误。

警告:StandardWrapperValve[jsp]:servlet jsp 的 Servlet.service() 抛出异常 com.mysql.jdbc.MysqlDataTruncation:数据截断:第 1 行“可用”列的数据太长

【问题讨论】:

    标签: mysql jstl bit


    【解决方案1】:

    我在 MySQL 中使用 BIT 和你一样。我知道这与您的情况有些不同,但希望对您有所帮助。

    我有一个专栏:

    NAME:PUBLISHED | DATATYPE:BIT
    

    通过页面上的按钮进行切换。

    <li sec:authorize="hasRole('ROLE_ADMIN')">
       <a th:href="@{'/administration/'+*{postId} + '/publish'}" th:text="*{postMetaData.published} ? 'unpublish' : 'publish'">publish</a>
    </li>
    

    上面映射的控制器在服务中调用如下方法:

    public boolean togglePublishPost(int postId){
        Post post = postRepo.findOne(postId);
        if(post.isPublished()){
            post.setPublished(false);
        }else{
            post.setPublished(true);
            post.setPublishDate(new Date());
        }
        postRepo.save(post);
        return post.isPublished();
    }
    

    就像我说的,它是不同的,但看起来我们有点试图实现相同的目标。所以,我想简而言之,BIT 可以更新为truefalse

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-06
      • 2017-07-16
      • 1970-01-01
      • 2013-11-19
      • 2014-08-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多