August 03(Wed), 2011 ”Unsuccessful: create table”エラーの解決
■[PlayFramework][MySQL]"Unsuccessful: create table"エラーの解決
PlayFrameworkを用いて開発していたところ,db=mem環境では動いていたのに,MySQLに移行したところ,動かなくなってしまった.
調べてみると,Entityクラスを元にMySQLのテーブル自動生成時にエラーがでており,一部のテーブルが生成されていなかった.
元となったEntityクラス
package models; import javax.persistence.Entity; import javax.persistence.Lob; import play.db.jpa.Model; /** * @author Syo.Takasaki */ @Entity public class TestCondition extends Model { @Lob public String condition; public Integer priority; @Lob public String comment; }
出力されたエラー
20:44:43,596 ERROR ~ Unsuccessful: create table TestCondition (id bigint not null auto_increment, comment longtext, condition longtext, priority integer, primary key (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8 20:44:43,597 ERROR ~ You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'condition longtext, priority integer, primary key (id)) ENGINE=InnoDB DEFAULT CH' at line 1
なお,MySQLのバージョンは5.1である.
出力されたcreate tableを直接叩いてみたが,同様のエラー.
解決(というか原因)
もしかして予約語使っていないか? と気づき,MySQLの仕様を調べ……る前にカラム名を変えてみた.
結果,conditionを使わなければ見事(?)にテーブルが生成された.
結論:conditionは使ってはダメです.
http://dev.mysql.com/doc/refman/5.1/ja/reserved-words.html の予約語一覧にもしっかり書いてありました.
トラックバック - http://d.hatena.ne.jp/Syo-Takasaki/20110803/1312372736
リンク元
- 606 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CC4QFjAA&url=http://d.hatena.ne.jp/Syo-Takasaki/20100502/1272758298&ei=vCgqT-btC-aQiAfk65DqDg&usg=AFQjCNH9qOCWKxV0Hn2_sQ3D0jmKCBYMvg&sig2=LRUKeCsSD7hSEe5s0f9uhQ
- 374 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CCwQFjAB&url=http://d.hatena.ne.jp/Syo-Takasaki/20090528/1243484754&ei=fgo5T9LVOaOTiAfSmpWjAg&usg=AFQjCNG0BjGjpAIYf1HHWlC_3sXy7LHJXw&sig2=2LOjMkIMBw5Kq56ayYGzig
- 301 http://www.google.co.jp/url?sa=t&rct=j&q=ubuntu jdk&source=web&cd=1&ved=0CCwQFjAA&url=http://d.hatena.ne.jp/Syo-Takasaki/20100502/1272758298&ei=MD-ETuKdNoTGmAWf1N0Q&usg=AFQjCNH9qOCWKxV0Hn2_sQ3D0jmKCBYMvg&sig2=ZeDkrEDHg6YZ4hZJFs0Xgg
- 296 http://www.google.co.jp/url?sa=t&rct=j&q=sun-java6-jdk&source=web&cd=2&ved=0CCoQFjAB&url=http://d.hatena.ne.jp/Syo-Takasaki/20100502/1272758298&ei=iOaETsPXG4PWmAXd4qAM&usg=AFQjCNH9qOCWKxV0Hn2_sQ3D0jmKCBYMvg
- 227 http://www.google.com/cse?cx=partner-pub-9300639326172081:d9bbzbtli15&ie=UTF-8&sa=Search&q=ubunut+jdk+いんすとーる&hl=en
- 191 http://www.google.co.jp/url?sa=t&rct=j&q=ubuntu java インストール&source=web&cd=2&sqi=2&ved=0CC0QFjAB&url=http://d.hatena.ne.jp/Syo-Takasaki/20100502/1272758298&ei=LaSETrrGEeiemQWPg7kX&usg=AFQjCNH9
- 174 http://www.google.co.jp/url?sa=t&rct=j&q=netbeans 文字化け&source=web&cd=3&ved=0CCkQFjAC&url=http://d.hatena.ne.jp/Syo-Takasaki/20100507/1273208095&ei=Ry6ETtemJoqemQXP76QN&usg=AFQjCNEUd-12UMJrsGJjwIkSUzuIJZVggg&si
- 160 http://www.google.co.jp/url?sa=t&rct=j&q=ubuntu jdk インストール&source=web&cd=4&sqi=2&ved=0CEYQFjAD&url=http://d.hatena.ne.jp/Syo-Takasaki/20100502/1272758298&ei=tKqfTrq6Ia2kiAfd48HdBg&usg=AFQjCNH
- 146 http://www.google.co.jp/url?sa=t&rct=j&q=パッケージにはインストール候補がありません&source=web&cd=1&ved=0CB0
- 145 http://www.google.co.jp/url?sa=t&rct=j&q=ubuntu sun-java6-jdk&source=web&cd=1&ved=0CB8QFjAA&url=http://d.hatena.ne.jp/Syo-Takasaki/20100502/1272758298&ei=686fTuW7FOmKiAKXzb1S&usg=AFQjCNH9qOCWKxV0Hn2_sQ3D0jmKCBYMvg&sig2=yoyvIucxpJugm2nIfYnlWA