syntaxe incorrecte sqlite3 python

Le problème exposé dans ce sujet a été résolu.

bonjour j’ai ce code minimal en Python:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
class Sql:
    def __init__(self):
        self.conn = sqlite3.connect('ADZ-database')
        self.cursor = self.conn.cursor()

    def inscription(self, username, password, requester):
        """
        this method dumps into the ADZ database username and password of the user (requester)
         :param username:
         :param password:
         :param requester:
        """
        try:
            self.cursor.execute('CREATE TABLE IF NOT EXISTS '
                                'users(username TEXT NOT NULL UNIQUE, password TEXT NOT NULL)')
            self.conn.commit()
            try:
                self.cursor.execute('INSERT INTO users(username, password)', (username, password))
                self.conn.commit()
                self.cursor.close()
                self.conn.close()
                print(GREEN + 'user[' + requester + '] created a new account\n')
                return 'executed'
            except sqlite3.IntegrityError:
                print(RED + 'user[' + str(requester) + '] tried to create an account but username already exist...\n')
                return 'error-2'
        except sqlite3.Error as sq:
            print(RED + 'An error occurred during creating a new account for the user: [' + str(requester) + ']\n')
            print(sq)
            return 'error-1'
````





et une sortie en erreur:

```py
An error occurred during creating a new account for the user: [<socket.socket fd=5, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('192.168.0.12', 4567), raddr=('192.168.0.12', 51385)>]

near ")": syntax error

c’est un bout de mon code mais sa coince au niveau du premier try except ou j’ai mis as… pouvez vous m’aidez ? merci et bonne soirée

+0 -0

oui mais ma sortie est au niveau du premier except ou il m’affiche l’erreur, tu es sûr que l’erreur n’est pas au niveau du CREATE TABLE IF NOT EXISTS… si l’erreur est dans el deuxième try comme tu dis, pourquoi la sortie ne serait-elle donc pas celle du deuxième except ?

  • dans le graphe : column-def puis column-constraint ;
  • "A set of SQL constraints for each table. SQLite supports UNIQUE, NOT NULL, CHECK and FOREIGN KEY constraints."
  • dans la section "Column Definitions" ;
  • dans la section "SQL Data Constraints".

La définition de la contrainte :

A UNIQUE constraint is similar to a PRIMARY KEY constraint, except that a single table may have any number of UNIQUE constraints. For each UNIQUE constraint on the table, each row must contain a unique combination of values in the columns identified by the UNIQUE constraint. For the purposes of UNIQUE constraints, NULL values are considered distinct from all other values, including other NULLs. As with PRIMARY KEYs, a UNIQUE table-constraint clause must contain only column names — the use of expressions in an indexed-column of a UNIQUE table-constraint is not supported.

Je viens de tester, SQLite ne me sort aucune erreur :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
~
⟩ sqlite3 foo.db
SQLite version 3.14.2 2016-09-12 18:50:49
Enter ".help" for usage hints.
sqlite> CREATE TABLE `items` (
   ...>     `id`  INTEGER PRIMARY KEY AUTOINCREMENT,
   ...>     `foo` TEXT UNIQUE
   ...> );
sqlite> INSERT INTO items(foo) VALUES("bar");
sqlite> INSERT INTO items(foo) VALUES("bar");
Error: UNIQUE constraint failed: items.foo

J’ai toujours utilisé cette syntaxe là pour mes contraintes, tu utilises quoi comme syntaxe ?

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte