Jump to content

MYSQL problema


x820
 Share

Recommended Posts

pamāciet mani latviešu valodas gramatikas lietošanā :eek:

CREATE TABLE exigo (

id int(11) NOT NULL auto_increment,

1 varchar(255) NOT NULL default '',

2 varchar(255) NOT NULL default '',

3 varchar(255) NOT NULL default '',

4 varchar(255) NOT NULL default '',

5 varchar(255) NOT NULL default '',

6 varchar(255) NOT NULL default '',

7 varchar(255) NOT NULL default '',

8 varchar(255) NOT NULL default '',

9 varchar(255) NOT NULL default '',

10 varchar(255) NOT NULL default '',

11 varchar(255) NOT NULL default '',

12 varchar(255) NOT NULL default '',

PRIMARY KEY (id)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;

 

veicot so pieprasijumu izmetas erors

#1064 - 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 'varchar(255) NOT NULL default '', varchar(255) NOT NULL default '', varc' at line 3
Edited by x820
Link to comment
Share on other sites

bubu, lai cik tas stulbi/dumji/nepareizi arī nebūtu, MySQL ļauj veidot arī db/table/column, kuru nosaukumi sastāv tikai no cipariem, tik tad tās ir jāliek backtick (jeb grave accent) charos:

mysql> create database `123`; use `123`; create table `111` (`321` integer); show full columns in `111`;
Query OK, 1 row affected (0.00 sec)

Database changed
Query OK, 0 rows affected (0.04 sec)

+-------+---------+-----------+------+-----+---------+-------+---------------------------------+---------+
| Field | Type	| Collation | Null | Key | Default | Extra | Privileges					  | Comment |
+-------+---------+-----------+------+-----+---------+-------+---------------------------------+---------+
| 321   | int(11) | NULL	  | YES  |	 | NULL	|	   | select,insert,update,references |		 |
+-------+---------+-----------+------+-----+---------+-------+---------------------------------+---------+
1 row in set (0.01 sec)

 

Bet nu autoram tomēr ieteiktu kolonnu nosaukumus sākt ar burtu...

Link to comment
Share on other sites

Kolonnas nosakumu (arī tabulu/db) nedrīkst sākties ar ciparu.

Tu alojies.

Ir vienkārši jānorāda, ka tu runā par DB lauku, nevis skaitli.

To izdara ieliekot lauku nosaukums `.

mysql> CREATE TABLE aaa (`1` int(11));
Query OK, 0 rows affected (0.07 sec)

 

Ja atmiņa neviļ, tad arī MSSQL kolona varēja sākties ar ciparu .

Link to comment
Share on other sites

Varēt jau tad var tikai tas vienkārši skaļi brēc pēc potenciālas kļūdas:

Ir taču tik viegli apostrofus aizmirst!

mysql> create table a (`1` integer, `2` integer, `3` integer);
Query OK, 0 rows affected (0.06 sec)

mysql> insert into a values (1, 5, 8);
Query OK, 1 row affected (0.05 sec)

mysql> insert into a values (2, 3, 3);
Query OK, 1 row affected (0.05 sec)

mysql> select `2`+ 3, 2+ 3 from a;
+--------+------+
| `2`+ 3 | 2+ 3 |
+--------+------+
|	  8 |	5 |
|	  6 |	5 |
+--------+------+
2 rows in set (0.00 sec)

Atgādina ieteikumus no How to write unmaintainable code piemēram iespēju mainīgo vārdos LlELlEM I burtiem vietā rakstīt mazo L, Iai cilvēki pēc tam pamocās un saprot kurš te bija lZMANĪGAIS gaIvenais tipiņš :)

 

Nu kur man bija i, kur L? Ar kolonu nosaukumiem kā cipariem ir tieši tāpat.

 

Gints Plivna

http://datubazes.wordpress.com

Link to comment
Share on other sites

Vēl arī interesants jautājums ir - kāpēc visas kolonnas ir VARCHAR(255). Vai patiesi tāds ir nepieciešamais modelis šajā vietā, vai arī tas ir viens no tiem variantiem kur "visas kolonnas ir VARCHAR vienkāršības dēļ"... :roll:

Link to comment
Share on other sites

bubu, lai cik tas stulbi/dumji/nepareizi arī nebūtu, MySQL ļauj veidot arī db/table/column, kuru nosaukumi sastāv tikai no cipariem, tik tad tās ir jāliek backtick (jeb grave accent) charos:

Es to ļoti labi zinu, bet neuzskatu, ka to vajag autoram zināt un izmantot. Vispār labāk nevienam izmantot.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...