Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι
  • Σελίδα:
  • 1
  • 2

ΘΕΜΑ: Project : Αποδείξεις - Βάση δεδομένων

Απ: Project : Βάση δεδομένων 13 Χρόνια 9 Μήνες πριν #1244

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
pmav99 έγραψε:
@ Kamar

Μπορείς να ανεβάσεις τις εντολες της SQL που δημιουργούν αυτό το κλειδι?
EDIT
Εδώ με απευθείας εντολή από τη γραμμή εντολών της sqlite3:
CREATE TABLE [apodixis] (
    [arithmos_apod] VARCHAR NOT NULL, 
    [afm] VARCHAR NOT NULL REFERENCES [epixirisis](afm) ON DELETE CASCADE ON UPDATE CASCADE,
    [doy] VARCHAR NOT NULL,
    [typos_agoras] INTEGER NOT NULL,
    [ddate] DATE NOT NULL,
    [poso] REAL(8,2) NOT NULL,
    [aa] INTEGER NOT NULL UNIQUE ON CONFLICT FAIL,
    CONSTRAINT "protevon" PRIMARY KEY([afm], [ddate], [arithmos_apod]),
    FOREIGN KEY ([afm]) REFERENCES [epixirisis]([afm]) ON DELETE CASCADE ON UPDATE CASCADE
);

Αυτό που σε ενδιαφέρει είναι:
CONSTRAINT "protevon" PRIMARY KEY ([afm], [ddate], [arithmos_apod])

και το αντίστοιχο σε python:
syndesi = sqlite3.connect(databaseonoma)
    curr = syndesi.cursor()
...
curr.execute("CREATE TABLE [apodixis] ([arithmos_apod] VARCHAR NOT NULL, [afm] VARCHAR NOT NULL\
    REFERENCES [epixirisis](afm) ON DELETE CASCADE ON UPDATE CASCADE, [doy] VARCHAR NOT NULL, \
    [typos_agoras] INTEGER NOT NULL, [ddate] DATE NOT NULL, [poso] REAL(8,2) NOT NULL, [aa] INTEGER NOT NULL UNIQUE ON CONFLICT FAIL, \
    CONSTRAINT \"protevon\" PRIMARY KEY ([afm], [ddate], [arithmos_apod]))")
....

TIP: Αν θέλουμε να πάρουμε τον κώδικα δημιουργίας ενός πίνακα από βάση δεδομένων, η εντολή είναι:
.schema tablename

OFF TOPIC
Καλά θα ήταν να υπήρχε και preview των απαντήσεων μας.
Γράφω σε Python 3
Τελευταία διόρθωση: 13 Χρόνια 9 Μήνες πριν από pmav99.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Project : Βάση δεδομένων 13 Χρόνια 9 Μήνες πριν #1245

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
Επίσης το παραπάνω με python:
import sqlite3
db = sqlite3.Connection('/home/kostas/apodixis/src/data/apodixis2.db')
c = db.cursor()
p = c.execute("select sql from sqlite_master where name = ?",
('apodixis',))
for row in p:
    print(row)
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Project : Βάση δεδομένων 13 Χρόνια 9 Μήνες πριν #1246

  • pmav99
  • Το Άβαταρ του/της pmav99
  • Αποσυνδεμένος
  • Author
  • Δημοσιεύσεις: 684
  • Ληφθείσες Ευχαριστίες 111
Ανεβάζω μια προσέγγιση με χρήση της SQLAlchemy. Μπορείτε να το βρείτε ΕΔΩ

Οι πίνακες δεν είναι ακριβώς αυτό που ανέβασε ο kamar. Αν θες δέστο λίγο και πες μου αν αυτό έχει πρόβλημαΟ αντίστοιχος SQL κώδικας είναι
CREATE TABLE "Epixeiriseis" (
	id INTEGER, 
	name VARCHAR, 
	owner VARCHAR, 
	afm INTEGER NOT NULL, 
	doy VARCHAR, 
	address VARCHAR, 
	phone INTEGER, 
	PRIMARY KEY (afm))
 
CREATE TABLE "Apodeixeis" (
	id INTEGER, 
	VALUE FLOAT, 
	ddate DATETIME NOT NULL, 
	receipt_id VARCHAR NOT NULL, 
	afm INTEGER NOT NULL, 
	PRIMARY KEY (ddate, receipt_id, afm), 
	FOREIGN KEY(afm) REFERENCES "Epixeiriseis" (afm) ON DELETE CASCADE ON UPDATE CASCADE)

Την πρώτη φορά το αρχείο τρέχει κανονικά. Την δεύτερη θα βγάζει λάθη γιατί θα προσπαθεί να περάσει δεδομένα που υπάρχουν ήδη στη βάση δεδομένων. Θέλει comment out τα "session.add_all(...)".

Δεν είναι πλήρες, πρέπει να γραφεί μια κλάση για τα insert, delele, update και queries.
Τελευταία διόρθωση: 13 Χρόνια 9 Μήνες πριν από pmav99.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Απ: Project : Βάση δεδομένων 13 Χρόνια 9 Μήνες πριν #1247

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
afm = Column(Integer, primary_key=True)

EDIT
ίσως πρέπει να γίνει:
afm = COLUMN(Unicode(9), primary_key=TRUE)
γιατί από τη μηχανή της βάσης αφαιρείται το(α) αρχικό 0.
Γράφω σε Python 3
Τελευταία διόρθωση: 13 Χρόνια 9 Μήνες πριν από kamar. Αιτία: Διόρθωση ορθογραφικού λάθους.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
  • Σελίδα:
  • 1
  • 2
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.547 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου