Domanda

Voglio creare un database il cui nome avrà i caratteri speciali in esso. per esempio, (, -., _, @, #, $,%, &, *)

Qualcuno può fornire qualsiasi output su questo?

È stato utile?

Soluzione

vi consiglio vivamente di non creare database con tali nomi. Ma se si deve assolutamente, qui ci sono le restrizioni :

  • Nessun identificatore può contenere ASCII NUL (0x00) o un byte con un valore di 255.
  • nomi di database, tabelle e colonne non devono terminare con caratteri di spazio.
  • I nomi dei database e delle tabelle non possono contenere “/”, “\”, “”, o caratteri che non sono consentiti nei nomi di file.

Per creare un database, è possibile effettuare le seguenti operazioni:

mysql> create database `really@strange*database$name`;

Altri suggerimenti

Semplice:. Non

possono sfuggire i nomi di tabella esotici utilizzando il backtick in MySQL, ma non so se si può usare niente all'interno dei backticks. Darà grandi quantità di dolore durante il resto del tuo ciclo di vita del software.

avrei preferito raccomandare la creazione di un altro tavolo per tenere che i nomi esotici.

-- Example:
CREATE TABLE _DatabaseMetadata (
    databaseName VARCHAR(255),
    exoticName VARCHAR(255)
) DEFAULT CHARSET=utf8;

Risposta breve:

  • Non. Consiglio vivamente di tenere tutti gli identificatori, rappresentati da A-Z, a-z, 0-9 e _ caratteri. È possibile memorizzare il proprio nome "esotico" in una colonna o un commento.

Risposta lunga:

  • È possibile assegnare un nome al colonne, tabelle, chiavi, chiavi esterne, viste, anche i database utilizzando caratteri esotici, ma è probabile che stai andando pentirai in futuro.
  • Se ti ostini a farlo, Hai intenzione di necessità indicando l'identificatori in backticks ( `).
  • Nel caso in cui l'identificativo deve contenere un altro `dentro, si può sfuggire affermando due volte (ad esempio exotic`name ->` exotic``name`)
  • Per le cose non essere così semplice, se si utilizzano i caratteri esotici (o anche non convenzionali) nel nome del database (tra cui uno spazio semplice), quei personaggi (a mia conoscenza, tutto tranne az, AZ, 0-9 e _) ottenere defluito in quartine esadecimali a 4 cifre fuggiti da @, ad esempio, `Il mio database` diventa il mio @ 0020database. Questa forma viene utilizzato come nome di una directory / file in cui il vostro database / tabelle vengono memorizzate, e per esempio articoli in information_schema.INNODB_SYS_FOREIGN, inoltre può benissimo essere OS-dipendente (che significa, in teoria, si potrebbe desidera eseguire SHOW VARIABLES LIKE 'version_compile_os' di adattarsi ad esso). Si vede - con nomi esotici tutto diventa molto, molto più complicato e alla fine non è davvero la pena
  • .
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top