1

SQLクエリ:

CREATE TABLE  summertraining.student(

studentID VARCHAR( 9 ) NOT NULL ,
Name VARCHAR( 20 ) NOT NULL ,
KSUEmail VARCHAR( 20 ) NOT NULL ,
PhoneNo VARCHAR( 14 ) NOT NULL ,
coordinatorName VARCHAR( 20 ) NULL ,
supervisorName VARCHAR( 20 ) NULL ,
GPA DOUBLE( 4 ) NOT NULL ,
password VARCHAR( 10 ) NOT NULL ,
registerFlag VARCHAR( 7 ) NOT NULL ,
PRIMARY KEY (  studentID )
) ENGINE = INNODB;

MySQLは言った:

1064-SQL構文にエラーがあります。MySQLサーバーのバージョンに対応するマニュアルで、「)NOT NULL、passwordVARCHAR(10)NOT NULL、registerFlagVARCHAR(7)NOTNULL」の近くで使用する正しい構文を確認してください。1行目の強力なテキスト

4

2 に答える 2

0

DOUBLE(4)@Sergが指摘したように、問題は確かにその一部です。double値の精度を指定する場合は、精度を指定するために1つだけでなく、少なくとも2つの数値が必要です。MySQLマニュアルから:

MySQLでは、非標準の構文(FLOAT(M、D)またはREAL(M、D)またはDOUBLE PRECISION(M、D))が許可されています。ここで、「(M、D)」とは、合計M桁までの値を格納できることを意味し、そのうちD桁は小数点以下の場合があります。たとえば、FLOAT(7,4)として定義された列は、表示されると-999.9999のようになります。MySQLは値を格納するときに丸めを実行するため、999.00009をFLOAT(7,4)列に挿入すると、おおよその結果は999.0001になります。

DOUBLEただし、この構文はMySQLに固有であるため、そのままにしておきたい場合があります。

最大限の移植性を実現するには、近似数値データ値の格納が必要なコードで、精度や桁数を指定せずにFLOATまたはDOUBLEPRECISIONを使用する必要があります。

マニュアルの関連ページへのリンクは次のとおりです。http: //dev.mysql.com/doc/refman/5.6/en/floating-point-types.html

于 2013-03-23T13:17:59.317 に答える
0

エラーは次のとおりです。

GPA DOUBLE( 4 ) NOT NULL ,

使用する必要があります:

GPA DOUBLE NOT NULL ,
于 2013-03-23T12:57:47.873 に答える